{"id":10227,"date":"2026-05-06T12:01:31","date_gmt":"2026-05-06T04:01:31","guid":{"rendered":"https:\/\/uisoftware.com\/?page_id=10227"},"modified":"2026-05-13T20:54:34","modified_gmt":"2026-05-13T12:54:34","slug":"windows-apps","status":"publish","type":"page","link":"https:\/\/uisoftware.com\/it\/windows-apps\/","title":{"rendered":"Applicazioni per Windows"},"content":{"rendered":"\n<h2 id=\"h-metasynth-is-coming-to-windows-and-you-hold-the-key\" class=\"wp-block-heading\"><strong>MetaSynth is coming to Windows\u2014and you hold the key.<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ve completed code review and lined up our lead developer. Now, we just need you. We\u2019re bringing the full <strong>MetaSynth<\/strong> experience and a dedicated VST plugin of our legendary\u00a0<strong>Image Synth<\/strong>\u00a0sequencer to the PC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a &#8220;go\/no-go&#8221; moment. Join the list to cast your vote, track our progress, and help us green-light the most unique sound-design tool ever built for Windows. If you want to see MetaSynth on PC, sign up below to make it a reality. Let\u2019s build this!<\/p>\n\n\n\n<div id=\"mc_embed_shell\">\n      <link href=\"\/\/cdn-images.mailchimp.com\/embedcode\/classic-061523.css\" rel=\"stylesheet\" type=\"text\/css\">\n  <style type=\"text\/css\">\n        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}\n        \/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.\n           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. *\/\n<\/style>\n<div id=\"mc_embed_signup\">\n    <form action=\"https:\/\/uisoftware.us19.list-manage.com\/subscribe\/post?u=f8ec198e2074f46a586a90fbb&amp;id=255ff4cdac&amp;f_id=004faae6f0\" method=\"post\" id=\"mc-embedded-subscribe-form\" name=\"mc-embedded-subscribe-form\" class=\"validate\" target=\"_blank\">\n        <div id=\"mc_embed_signup_scroll\"><h2>Join Windows Apps Waitlist<\/h2>\n            <div class=\"indicates-required\"><span class=\"asterisk\">*<\/span> indicates required<\/div>\n            <div class=\"mc-field-group\"><label for=\"mce-EMAIL\">Email Address <span class=\"asterisk\">*<\/span><\/label><input type=\"email\" name=\"EMAIL\" class=\"required email\" id=\"mce-EMAIL\" required=\"\" value=\"\"><\/div><div class=\"mc-field-group\"><label for=\"mce-FNAME\">First Name <\/label><input type=\"text\" name=\"FNAME\" class=\" text\" id=\"mce-FNAME\" value=\"\"><\/div><div class=\"mc-field-group\"><label for=\"mce-LNAME\">Last Name <\/label><input type=\"text\" name=\"LNAME\" class=\" text\" id=\"mce-LNAME\" value=\"\"><\/div><div class=\"mc-field-group input-group\"><strong>Windows Apps of Interest (select all which apply): <span style=\"color: red;\">* Make sure to select apps of interest so we know you are real and which app to focus on.<\/span> <\/strong><ul><li><input type=\"checkbox\" name=\"group[180148][1]\" id=\"mce-group[180148]-180148-0\" value=\"\"><label for=\"mce-group[180148]-180148-0\">MetaSynth (Windows App)<\/label><\/li><li><input type=\"checkbox\" name=\"group[180148][2]\" id=\"mce-group[180148]-180148-1\" value=\"\"><label for=\"mce-group[180148]-180148-1\">Image Sequencer (VST plug-in)<\/label><\/li><li><input type=\"checkbox\" name=\"group[180148][4]\" id=\"mce-group[180148]-180148-2\" value=\"\"><label for=\"mce-group[180148]-180148-2\">Xx [MIDI for MetaSynth] (Windows App)<\/label><\/li><\/ul><\/div>\n<div hidden=\"\"><input type=\"hidden\" name=\"tags\" value=\"24293338\"><\/div>\n        <div id=\"mce-responses\" class=\"clear\">\n            <div class=\"response\" id=\"mce-error-response\" style=\"display: none;\"><\/div>\n            <div class=\"response\" id=\"mce-success-response\" style=\"display: none;\"><\/div>\n        <\/div><div aria-hidden=\"true\" style=\"position: absolute; left: -5000px;\"><input type=\"text\" name=\"b_f8ec198e2074f46a586a90fbb_255ff4cdac\" tabindex=\"-1\" value=\"\"><\/div><div class=\"clear\"><input type=\"submit\" name=\"subscribe\" id=\"mc-embedded-subscribe\" class=\"button\" value=\"Subscribe\"><\/div>\n    <\/div>\n<\/form>\n<\/div>\n<script type=\"text\/javascript\" src=\"\/\/s3.amazonaws.com\/downloads.mailchimp.com\/js\/mc-validate.js\"><\/script><script type=\"text\/javascript\">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='ADDRESS';ftypes[3]='address';fnames[4]='PHONE';ftypes[4]='phone';fnames[8]='MMERGE8';ftypes[8]='text';fnames[9]='MMERGE9';ftypes[9]='text';fnames[10]='MMERGE10';ftypes[10]='text';fnames[11]='MMERGE11';ftypes[11]='text';fnames[5]='MMERGE5';ftypes[5]='number';fnames[6]='MMERGE6';ftypes[6]='address';fnames[7]='MMERGE7';ftypes[7]='phone';fnames[12]='MMERGE12';ftypes[12]='date';}(jQuery));var $mcj = jQuery.noConflict(true);\n    \/\/ SMS Phone Multi-Country Functionality\n    if(!window.MC) {\n      window.MC = {};\n    }\n    window.MC.smsPhoneData = {\n      defaultCountryCode: 'US',\n      programs: [],\n      smsProgramDataCountryNames: []\n    };\n\n    function getCountryUnicodeFlag(countryCode) {\n       return countryCode.toUpperCase().replace(\/.\/g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))\n    };\n\n    \/\/ HTML sanitization function to prevent XSS\n    function sanitizeHtml(str) {\n      if (typeof str !== 'string') return '';\n      return str\n        .replace(\/&\/g, '&amp;')\n        .replace(\/<\/g, '&lt;')\n        .replace(\/>\/g, '&gt;')\n        .replace(\/\"\/g, '&quot;')\n        .replace(\/'\/g, '&#x27;')\n        .replace(\/\\\/\/g, '&#x2F;');\n    }\n\n    \/\/ URL sanitization function to prevent javascript: and data: URLs\n    function sanitizeUrl(url) {\n      if (typeof url !== 'string') return '';\n      const trimmedUrl = url.trim().toLowerCase();\n      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {\n        return '#';\n      }\n      return url;\n    }\n\n    const getBrowserLanguage = () => {\n      if (!window?.navigator?.language?.split('-')[1]) {\n        return window?.navigator?.language?.toUpperCase();\n      }\n      return window?.navigator?.language?.split('-')[1];\n    };\n\n    \n    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return null;\n      }\n\n      const browserLanguage = getBrowserLanguage();\n\n      if (browserLanguage) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === browserLanguage,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }\n\n      if (defaultCountryCode) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === defaultCountryCode,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }\n\n      return smsProgramData[0];\n    }\n\n    function updateSmsLegalText(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const programs = window?.MC?.smsPhoneData?.programs;\n      if (!programs || !Array.isArray(programs)) {\n        return;\n      }\n      \n      const program = programs.find(program => program?.countryCode === countryCode);\n      if (!program || !program.requiredTemplate) {\n        return;\n      }\n    \n      \n      var smsConsentHtmlRenderingFixEnabled = true;\n      \n      const legalTextElement = document.querySelector('#legal-text-' + fieldName);\n      if (!legalTextElement) {\n        return;\n      }\n      \n      const divRegex = new RegExp('<\/?[div][^>]*>', 'gi');\n      const blockWrapperRegex = new RegExp('<\/?(?:div|p)[^>]*>', 'gi');\n      const fullAnchorRegex = new RegExp('<a.*?<\/a>', 'g');\n      const anchorRegex = new RegExp('<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\/a>');\n      \n      const template = smsConsentHtmlRenderingFixEnabled\n        ? program.requiredTemplate\n            .replace(\/<\\\/p>\\s*<p[^>]*>\/gi, ' ')\n            .replace(blockWrapperRegex, '')\n        : program.requiredTemplate.replace(divRegex, '');\n      \n      \n\n      legalTextElement.textContent = '';\n      const parts = template.split(\/(<a href=\".*?\" target=\".*?\">.*?<\\\/a>)\/g);\n      parts.forEach(function(part) {\n        if (!part) {\n          return;\n        }\n        const anchorMatch = part.match(\/<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\\\/a>\/);\n        if (anchorMatch) {\n          const linkElement = document.createElement('a');\n          linkElement.href = sanitizeUrl(anchorMatch[1]);\n          linkElement.target = sanitizeHtml(anchorMatch[2]);\n          linkElement.textContent = sanitizeHtml(anchorMatch[3]);\n          legalTextElement.appendChild(linkElement);\n        } else {\n          legalTextElement.appendChild(document.createTextNode(part));\n        }\n      });\n          \n    }\n\n    function generateDropdownOptions(smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return '';\n      }\n\n      var programs = false\n        ? smsProgramData.filter(function(p, i, arr) {\n            return arr.findIndex(function(q) { return q.countryCode === p.countryCode; }) === i;\n          })\n        : smsProgramData;\n      \n      return programs.map(program => {\n        const flag = getCountryUnicodeFlag(program.countryCode);\n        const countryName = getCountryName(program.countryCode);\n        const callingCode = program.countryCallingCode || '';\n        \/\/ Sanitize all values to prevent XSS\n        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');\n        const sanitizedCountryName = sanitizeHtml(countryName || '');\n        const sanitizedCallingCode = sanitizeHtml(callingCode || '');\n        return '<option value=\"' + sanitizedCountryCode + '\">' + sanitizedCountryName + ' ' + sanitizedCallingCode + '<\/option>';\n      }).join('');\n    }\n\n    function getCountryName(countryCode) {\n      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {\n        for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {\n          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {\n            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;\n          }\n        }\n      }\n      return countryCode;\n    }\n\n    function getDefaultPlaceholder(countryCode) {\n      if (!countryCode || typeof countryCode !== 'string') {\n        return '+1 000 000 0000'; \/\/ Default US placeholder\n      }\n      \n            var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n\n      const selectedPlaceholder = mockPlaceholders.find(function(item) {\n        return item &#038;&#038; item.countryCode === countryCode;\n      });\n      \n      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;\n    }\n\n    function updatePlaceholder(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const phoneInput = document.querySelector('#mce-' + fieldName);\n      if (!phoneInput) {\n        return;\n      }\n      \n      const placeholder = getDefaultPlaceholder(countryCode);\n      if (placeholder) {\n        phoneInput.placeholder = placeholder;\n      }\n    }\n\n    function updateCountryCodeInstruction(countryCode, fieldName) {\n      updatePlaceholder(countryCode, fieldName);\n      \n    }\n\n    function getDefaultHelpText(countryCode) {\n      var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n      \n      if (!countryCode || typeof countryCode !== 'string') {\n        return mockPlaceholders[0].helpText;\n      }\n      \n      const selectedHelpText = mockPlaceholders.find(function(item) {\n          return item &#038;&#038; item.countryCode === countryCode;\n        });\n        \n        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;\n    }\n\n    function setDefaultHelpText(countryCode) {\n      const helpTextSpan = document.querySelector('#help-text');\n      if (!helpTextSpan) {\n        return;\n      }\n\n        \n    }\n\n    function updateHelpTextCountryCode(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      setDefaultHelpText(countryCode);\n    }\n\n    function initializeSmsPhoneDropdown(fieldName) {\n      if (!fieldName || typeof fieldName !== 'string') {\n        return;\n      }\n      \n      const dropdown = document.querySelector('#country-select-' + fieldName);\n      const displayFlag = document.querySelector('#flag-display-' + fieldName);\n      \n      if (!dropdown || !displayFlag) {\n        return;\n      }\n\n      const smsPhoneData = window.MC?.smsPhoneData;\n      if (smsPhoneData &#038;&#038; smsPhoneData.programs &#038;&#038; Array.isArray(smsPhoneData.programs)) {\n        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);\n      }\n\n      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);\n      if (defaultProgram &#038;&#038; defaultProgram.countryCode) {\n        dropdown.value = defaultProgram.countryCode;\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');\n        }\n        \n        updateSmsLegalText(defaultProgram.countryCode, fieldName);\n        updatePlaceholder(defaultProgram.countryCode, fieldName);\n        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);\n      }\n\n     \n      var smsNotRequiredRemoveCountryCodeEnabled = true;\n      var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"FNAME\":{\"name\":\"FNAME\",\"label\":\"First Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"First Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"},\"LNAME\":{\"name\":\"LNAME\",\"label\":\"Last Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Last Name\",\"merge_id\":2,\"help_text_enabled\":false,\"enabled\":true,\"order\":2,\"field_type\":\"merge\"},\"interests_180148\":{\"name\":\"interests_180148\",\"label\":\"Windows Apps of Interest (select all which apply):\",\"helper_text\":\"\",\"type\":\"checkbox\",\"required\":false,\"choices\":[{\"value\":\"1\",\"label\":\"MetaSynth (Windows App)\"},{\"value\":\"2\",\"label\":\"Image Sequencer (VST plug-in)\"},{\"value\":\"4\",\"label\":\"Xx [MIDI for MetaSynth] (Windows App)\"}],\"audience_field_name\":\"Windows Group\",\"group_id\":180148,\"help_text_enabled\":false,\"enabled\":true,\"order\":3,\"field_type\":\"group\"},\"ADDRESS\":{\"name\":\"ADDRESS\",\"label\":\"Address\",\"helper_text\":\"\",\"type\":\"address\",\"required\":false,\"audience_field_name\":\"Address\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":3,\"countries\":{\"2\":\"Albania\",\"3\":\"Algeria\",\"4\":\"Andorra\",\"5\":\"Angola\",\"6\":\"Argentina\",\"7\":\"Armenia\",\"8\":\"Australia\",\"9\":\"Austria\",\"10\":\"Azerbaijan\",\"11\":\"Bahamas\",\"12\":\"Bahrain\",\"13\":\"Bangladesh\",\"14\":\"Barbados\",\"15\":\"Belarus\",\"16\":\"Belgium\",\"17\":\"Belize\",\"18\":\"Benin\",\"19\":\"Bermuda\",\"20\":\"Bhutan\",\"21\":\"Bolivia\",\"22\":\"Bosnia and Herzegovina\",\"23\":\"Botswana\",\"24\":\"Brazil\",\"25\":\"Bulgaria\",\"26\":\"Burkina Faso\",\"27\":\"Burundi\",\"28\":\"Cambodia\",\"29\":\"Cameroon\",\"30\":\"Canada\",\"31\":\"Cape Verde\",\"32\":\"Cayman Islands\",\"33\":\"Central African Republic\",\"34\":\"Chad\",\"35\":\"Chile\",\"36\":\"China\",\"37\":\"Colombia\",\"38\":\"Congo\",\"40\":\"Croatia\",\"41\":\"Cyprus\",\"42\":\"Czech Republic\",\"43\":\"Denmark\",\"44\":\"Djibouti\",\"45\":\"Ecuador\",\"46\":\"Egypt\",\"47\":\"El Salvador\",\"48\":\"Equatorial Guinea\",\"49\":\"Eritrea\",\"50\":\"Estonia\",\"51\":\"Ethiopia\",\"52\":\"Fiji\",\"53\":\"Finland\",\"54\":\"France\",\"56\":\"Gabon\",\"57\":\"Gambia\",\"58\":\"Georgia\",\"59\":\"Germany\",\"60\":\"Ghana\",\"61\":\"Greece\",\"62\":\"Guam\",\"63\":\"Guinea\",\"64\":\"Guinea-Bissau\",\"65\":\"Guyana\",\"66\":\"Honduras\",\"67\":\"Hong Kong\",\"68\":\"Hungary\",\"69\":\"Iceland\",\"70\":\"India\",\"71\":\"Indonesia\",\"74\":\"Ireland\",\"75\":\"Israel\",\"76\":\"Italy\",\"78\":\"Japan\",\"79\":\"Jordan\",\"80\":\"Kazakhstan\",\"81\":\"Kenya\",\"82\":\"Kuwait\",\"83\":\"Kyrgyzstan\",\"84\":\"Lao People's Democratic Republic\",\"85\":\"Latvia\",\"86\":\"Lebanon\",\"87\":\"Lesotho\",\"88\":\"Liberia\",\"90\":\"Liechtenstein\",\"91\":\"Lithuania\",\"92\":\"Luxembourg\",\"93\":\"Macedonia\",\"94\":\"Madagascar\",\"95\":\"Malawi\",\"96\":\"Malaysia\",\"97\":\"Maldives\",\"98\":\"Mali\",\"99\":\"Malta\",\"100\":\"Mauritania\",\"101\":\"Mexico\",\"102\":\"Moldova\",\"103\":\"Monaco\",\"104\":\"Mongolia\",\"105\":\"Morocco\",\"106\":\"Mozambique\",\"107\":\"Namibia\",\"108\":\"Nepal\",\"109\":\"Netherlands\",\"110\":\"Netherlands Antilles\",\"111\":\"New Zealand\",\"112\":\"Nicaragua\",\"113\":\"Niger\",\"114\":\"Nigeria\",\"116\":\"Norway\",\"117\":\"Oman\",\"118\":\"Pakistan\",\"119\":\"Panama\",\"120\":\"Paraguay\",\"121\":\"Peru\",\"122\":\"Philippines\",\"123\":\"Poland\",\"124\":\"Portugal\",\"126\":\"Qatar\",\"127\":\"Reunion\",\"128\":\"Romania\",\"129\":\"Russia\",\"130\":\"Rwanda\",\"132\":\"Samoa (Independent)\",\"133\":\"Saudi Arabia\",\"134\":\"Senegal\",\"135\":\"Seychelles\",\"136\":\"Sierra Leone\",\"137\":\"Singapore\",\"138\":\"Slovakia\",\"139\":\"Slovenia\",\"140\":\"Somalia\",\"141\":\"South Africa\",\"142\":\"South Korea\",\"143\":\"Spain\",\"144\":\"Sri Lanka\",\"146\":\"Suriname\",\"147\":\"Swaziland\",\"148\":\"Sweden\",\"149\":\"Switzerland\",\"152\":\"Taiwan\",\"153\":\"Tanzania\",\"154\":\"Thailand\",\"155\":\"Togo\",\"156\":\"Tunisia\",\"157\":\"Turkiye\",\"158\":\"Turkmenistan\",\"159\":\"Uganda\",\"161\":\"Ukraine\",\"162\":\"United Arab Emirates\",\"163\":\"Uruguay\",\"164\":\"USA\",\"165\":\"Uzbekistan\",\"166\":\"Vatican City State (Holy See)\",\"167\":\"Venezuela\",\"168\":\"Vietnam\",\"169\":\"Virgin Islands (British)\",\"170\":\"Yemen\",\"173\":\"Zambia\",\"174\":\"Zimbabwe\",\"175\":\"Antigua And Barbuda\",\"176\":\"Anguilla\",\"178\":\"American Samoa\",\"179\":\"Aruba\",\"180\":\"Brunei Darussalam\",\"181\":\"Bouvet Island\",\"183\":\"Cook Islands\",\"185\":\"Christmas Island\",\"187\":\"Dominican Republic\",\"188\":\"Western Sahara\",\"189\":\"Falkland Islands\",\"191\":\"Faroe Islands\",\"192\":\"Grenada\",\"193\":\"French Guiana\",\"194\":\"Gibraltar\",\"195\":\"Greenland\",\"196\":\"Guadeloupe\",\"198\":\"Guatemala\",\"200\":\"Haiti\",\"202\":\"Jamaica\",\"203\":\"Kiribati\",\"204\":\"Comoros\",\"205\":\"Saint Kitts and Nevis\",\"206\":\"Saint Lucia\",\"207\":\"Marshall Islands\",\"208\":\"Macau\",\"210\":\"Martinique\",\"212\":\"Mauritius\",\"213\":\"New Caledonia\",\"214\":\"Norfolk Island\",\"215\":\"Nauru\",\"217\":\"Niue\",\"219\":\"Papua New Guinea\",\"221\":\"Pitcairn\",\"222\":\"Palau\",\"223\":\"Solomon Islands\",\"225\":\"Svalbard and Jan Mayen Islands\",\"227\":\"San Marino\",\"232\":\"Tonga\",\"233\":\"Timor-Leste\",\"234\":\"Trinidad and Tobago\",\"235\":\"Tuvalu\",\"237\":\"Saint Vincent and the Grenadines\",\"238\":\"Virgin Islands (U.S.)\",\"239\":\"Vanuatu\",\"241\":\"Mayotte\",\"242\":\"Myanmar\",\"255\":\"Sao Tome and Principe\",\"257\":\"South Georgia and the South Sandwich Islands\",\"260\":\"Tajikistan\",\"262\":\"United Kingdom\",\"268\":\"Costa Rica\",\"270\":\"Guernsey\",\"272\":\"North Korea\",\"274\":\"Afghanistan\",\"275\":\"Cote D'Ivoire\",\"276\":\"Cuba\",\"277\":\"French Polynesia\",\"278\":\"Iran\",\"279\":\"Iraq\",\"281\":\"Libya\",\"282\":\"Palestine\",\"285\":\"Syria\",\"286\":\"Aaland Islands\",\"287\":\"Turks &#038; Caicos Islands\",\"288\":\"Jersey  (Channel Islands)\",\"289\":\"Dominica\",\"290\":\"Montenegro\",\"293\":\"Sudan\",\"294\":\"Montserrat\",\"298\":\"Curacao\",\"302\":\"Sint Maarten\",\"311\":\"South Sudan\",\"315\":\"Republic of Kosovo\",\"318\":\"Congo, Democratic Republic of the\",\"323\":\"Isle of Man\",\"324\":\"Saint Martin\",\"325\":\"Bonaire, Saint Eustatius and Saba\",\"326\":\"Serbia\",\"327\":\"Saint Barthelemy\"},\"defaultcountry\":164},\"PHONE\":{\"name\":\"PHONE\",\"label\":\"Phone Number\",\"helper_text\":\"\",\"type\":\"phone\",\"required\":false,\"audience_field_name\":\"Phone Number\",\"phoneformat\":\"\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":4},\"MMERGE8\":{\"name\":\"MMERGE8\",\"label\":\"Prod ID\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Prod ID\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":8},\"MMERGE9\":{\"name\":\"MMERGE9\",\"label\":\"Prod Descrip\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Prod Descrip\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":9},\"MMERGE10\":{\"name\":\"MMERGE10\",\"label\":\"Version\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Version\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":10},\"MMERGE11\":{\"name\":\"MMERGE11\",\"label\":\"Customer Notes\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Customer Notes\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":11},\"MMERGE5\":{\"name\":\"MMERGE5\",\"label\":\"Untitled\",\"helper_text\":\"\",\"type\":\"number\",\"required\":false,\"audience_field_name\":\"Untitled\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":5},\"MMERGE6\":{\"name\":\"MMERGE6\",\"label\":\"Address\",\"helper_text\":\"\",\"type\":\"address\",\"required\":false,\"audience_field_name\":\"Address\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":6,\"countries\":{\"2\":\"Albania\",\"3\":\"Algeria\",\"4\":\"Andorra\",\"5\":\"Angola\",\"6\":\"Argentina\",\"7\":\"Armenia\",\"8\":\"Australia\",\"9\":\"Austria\",\"10\":\"Azerbaijan\",\"11\":\"Bahamas\",\"12\":\"Bahrain\",\"13\":\"Bangladesh\",\"14\":\"Barbados\",\"15\":\"Belarus\",\"16\":\"Belgium\",\"17\":\"Belize\",\"18\":\"Benin\",\"19\":\"Bermuda\",\"20\":\"Bhutan\",\"21\":\"Bolivia\",\"22\":\"Bosnia and Herzegovina\",\"23\":\"Botswana\",\"24\":\"Brazil\",\"25\":\"Bulgaria\",\"26\":\"Burkina Faso\",\"27\":\"Burundi\",\"28\":\"Cambodia\",\"29\":\"Cameroon\",\"30\":\"Canada\",\"31\":\"Cape Verde\",\"32\":\"Cayman Islands\",\"33\":\"Central African Republic\",\"34\":\"Chad\",\"35\":\"Chile\",\"36\":\"China\",\"37\":\"Colombia\",\"38\":\"Congo\",\"40\":\"Croatia\",\"41\":\"Cyprus\",\"42\":\"Czech Republic\",\"43\":\"Denmark\",\"44\":\"Djibouti\",\"45\":\"Ecuador\",\"46\":\"Egypt\",\"47\":\"El Salvador\",\"48\":\"Equatorial Guinea\",\"49\":\"Eritrea\",\"50\":\"Estonia\",\"51\":\"Ethiopia\",\"52\":\"Fiji\",\"53\":\"Finland\",\"54\":\"France\",\"56\":\"Gabon\",\"57\":\"Gambia\",\"58\":\"Georgia\",\"59\":\"Germany\",\"60\":\"Ghana\",\"61\":\"Greece\",\"62\":\"Guam\",\"63\":\"Guinea\",\"64\":\"Guinea-Bissau\",\"65\":\"Guyana\",\"66\":\"Honduras\",\"67\":\"Hong Kong\",\"68\":\"Hungary\",\"69\":\"Iceland\",\"70\":\"India\",\"71\":\"Indonesia\",\"74\":\"Ireland\",\"75\":\"Israel\",\"76\":\"Italy\",\"78\":\"Japan\",\"79\":\"Jordan\",\"80\":\"Kazakhstan\",\"81\":\"Kenya\",\"82\":\"Kuwait\",\"83\":\"Kyrgyzstan\",\"84\":\"Lao People's Democratic Republic\",\"85\":\"Latvia\",\"86\":\"Lebanon\",\"87\":\"Lesotho\",\"88\":\"Liberia\",\"90\":\"Liechtenstein\",\"91\":\"Lithuania\",\"92\":\"Luxembourg\",\"93\":\"Macedonia\",\"94\":\"Madagascar\",\"95\":\"Malawi\",\"96\":\"Malaysia\",\"97\":\"Maldives\",\"98\":\"Mali\",\"99\":\"Malta\",\"100\":\"Mauritania\",\"101\":\"Mexico\",\"102\":\"Moldova\",\"103\":\"Monaco\",\"104\":\"Mongolia\",\"105\":\"Morocco\",\"106\":\"Mozambique\",\"107\":\"Namibia\",\"108\":\"Nepal\",\"109\":\"Netherlands\",\"110\":\"Netherlands Antilles\",\"111\":\"New Zealand\",\"112\":\"Nicaragua\",\"113\":\"Niger\",\"114\":\"Nigeria\",\"116\":\"Norway\",\"117\":\"Oman\",\"118\":\"Pakistan\",\"119\":\"Panama\",\"120\":\"Paraguay\",\"121\":\"Peru\",\"122\":\"Philippines\",\"123\":\"Poland\",\"124\":\"Portugal\",\"126\":\"Qatar\",\"127\":\"Reunion\",\"128\":\"Romania\",\"129\":\"Russia\",\"130\":\"Rwanda\",\"132\":\"Samoa (Independent)\",\"133\":\"Saudi Arabia\",\"134\":\"Senegal\",\"135\":\"Seychelles\",\"136\":\"Sierra Leone\",\"137\":\"Singapore\",\"138\":\"Slovakia\",\"139\":\"Slovenia\",\"140\":\"Somalia\",\"141\":\"South Africa\",\"142\":\"South Korea\",\"143\":\"Spain\",\"144\":\"Sri Lanka\",\"146\":\"Suriname\",\"147\":\"Swaziland\",\"148\":\"Sweden\",\"149\":\"Switzerland\",\"152\":\"Taiwan\",\"153\":\"Tanzania\",\"154\":\"Thailand\",\"155\":\"Togo\",\"156\":\"Tunisia\",\"157\":\"Turkiye\",\"158\":\"Turkmenistan\",\"159\":\"Uganda\",\"161\":\"Ukraine\",\"162\":\"United Arab Emirates\",\"163\":\"Uruguay\",\"164\":\"USA\",\"165\":\"Uzbekistan\",\"166\":\"Vatican City State (Holy See)\",\"167\":\"Venezuela\",\"168\":\"Vietnam\",\"169\":\"Virgin Islands (British)\",\"170\":\"Yemen\",\"173\":\"Zambia\",\"174\":\"Zimbabwe\",\"175\":\"Antigua And Barbuda\",\"176\":\"Anguilla\",\"178\":\"American Samoa\",\"179\":\"Aruba\",\"180\":\"Brunei Darussalam\",\"181\":\"Bouvet Island\",\"183\":\"Cook Islands\",\"185\":\"Christmas Island\",\"187\":\"Dominican Republic\",\"188\":\"Western Sahara\",\"189\":\"Falkland Islands\",\"191\":\"Faroe Islands\",\"192\":\"Grenada\",\"193\":\"French Guiana\",\"194\":\"Gibraltar\",\"195\":\"Greenland\",\"196\":\"Guadeloupe\",\"198\":\"Guatemala\",\"200\":\"Haiti\",\"202\":\"Jamaica\",\"203\":\"Kiribati\",\"204\":\"Comoros\",\"205\":\"Saint Kitts and Nevis\",\"206\":\"Saint Lucia\",\"207\":\"Marshall Islands\",\"208\":\"Macau\",\"210\":\"Martinique\",\"212\":\"Mauritius\",\"213\":\"New Caledonia\",\"214\":\"Norfolk Island\",\"215\":\"Nauru\",\"217\":\"Niue\",\"219\":\"Papua New Guinea\",\"221\":\"Pitcairn\",\"222\":\"Palau\",\"223\":\"Solomon Islands\",\"225\":\"Svalbard and Jan Mayen Islands\",\"227\":\"San Marino\",\"232\":\"Tonga\",\"233\":\"Timor-Leste\",\"234\":\"Trinidad and Tobago\",\"235\":\"Tuvalu\",\"237\":\"Saint Vincent and the Grenadines\",\"238\":\"Virgin Islands (U.S.)\",\"239\":\"Vanuatu\",\"241\":\"Mayotte\",\"242\":\"Myanmar\",\"255\":\"Sao Tome and Principe\",\"257\":\"South Georgia and the South Sandwich Islands\",\"260\":\"Tajikistan\",\"262\":\"United Kingdom\",\"268\":\"Costa Rica\",\"270\":\"Guernsey\",\"272\":\"North Korea\",\"274\":\"Afghanistan\",\"275\":\"Cote D'Ivoire\",\"276\":\"Cuba\",\"277\":\"French Polynesia\",\"278\":\"Iran\",\"279\":\"Iraq\",\"281\":\"Libya\",\"282\":\"Palestine\",\"285\":\"Syria\",\"286\":\"Aaland Islands\",\"287\":\"Turks &#038; Caicos Islands\",\"288\":\"Jersey  (Channel Islands)\",\"289\":\"Dominica\",\"290\":\"Montenegro\",\"293\":\"Sudan\",\"294\":\"Montserrat\",\"298\":\"Curacao\",\"302\":\"Sint Maarten\",\"311\":\"South Sudan\",\"315\":\"Republic of Kosovo\",\"318\":\"Congo, Democratic Republic of the\",\"323\":\"Isle of Man\",\"324\":\"Saint Martin\",\"325\":\"Bonaire, Saint Eustatius and Saba\",\"326\":\"Serbia\",\"327\":\"Saint Barthelemy\"},\"defaultcountry\":\"164\"},\"MMERGE7\":{\"name\":\"MMERGE7\",\"label\":\"Phone Number\",\"helper_text\":\"\",\"type\":\"phone\",\"required\":false,\"audience_field_name\":\"Phone Number\",\"phoneformat\":\"none\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":7},\"MMERGE12\":{\"name\":\"MMERGE12\",\"label\":\"Date\",\"helper_text\":\"\",\"type\":\"date\",\"required\":false,\"audience_field_name\":\"Date\",\"dateformat\":\"MM\/DD\/YYYY\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":12}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n      var isRequired = smsField ? smsField.required : false;\n      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n      \n      var phoneInput = document.querySelector('#mce-' + fieldName);\n      if (phoneInput &#038;&#038; defaultProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n        phoneInput.value = defaultProgram.countryCallingCode;\n      }\n      \n\n\n      displayFlag?.addEventListener('click', function(e) {\n        dropdown.focus();\n      });\n\n\n      dropdown?.addEventListener('change', function() {\n        const selectedCountry = this.value;\n        \n        if (!selectedCountry || typeof selectedCountry !== 'string') {\n          return;\n        }\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');\n        }\n\n         \n        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {\n          return program &#038;&#038; program.countryCode === selectedCountry;\n        });\n\n        var smsNotRequiredRemoveCountryCodeEnabled = true;\n        var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"FNAME\":{\"name\":\"FNAME\",\"label\":\"First Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"First Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"},\"LNAME\":{\"name\":\"LNAME\",\"label\":\"Last Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Last Name\",\"merge_id\":2,\"help_text_enabled\":false,\"enabled\":true,\"order\":2,\"field_type\":\"merge\"},\"interests_180148\":{\"name\":\"interests_180148\",\"label\":\"Windows Apps of Interest (select all which apply):\",\"helper_text\":\"\",\"type\":\"checkbox\",\"required\":false,\"choices\":[{\"value\":\"1\",\"label\":\"MetaSynth (Windows App)\"},{\"value\":\"2\",\"label\":\"Image Sequencer (VST plug-in)\"},{\"value\":\"4\",\"label\":\"Xx [MIDI for MetaSynth] (Windows App)\"}],\"audience_field_name\":\"Windows Group\",\"group_id\":180148,\"help_text_enabled\":false,\"enabled\":true,\"order\":3,\"field_type\":\"group\"},\"ADDRESS\":{\"name\":\"ADDRESS\",\"label\":\"Address\",\"helper_text\":\"\",\"type\":\"address\",\"required\":false,\"audience_field_name\":\"Address\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":3,\"countries\":{\"2\":\"Albania\",\"3\":\"Algeria\",\"4\":\"Andorra\",\"5\":\"Angola\",\"6\":\"Argentina\",\"7\":\"Armenia\",\"8\":\"Australia\",\"9\":\"Austria\",\"10\":\"Azerbaijan\",\"11\":\"Bahamas\",\"12\":\"Bahrain\",\"13\":\"Bangladesh\",\"14\":\"Barbados\",\"15\":\"Belarus\",\"16\":\"Belgium\",\"17\":\"Belize\",\"18\":\"Benin\",\"19\":\"Bermuda\",\"20\":\"Bhutan\",\"21\":\"Bolivia\",\"22\":\"Bosnia and Herzegovina\",\"23\":\"Botswana\",\"24\":\"Brazil\",\"25\":\"Bulgaria\",\"26\":\"Burkina Faso\",\"27\":\"Burundi\",\"28\":\"Cambodia\",\"29\":\"Cameroon\",\"30\":\"Canada\",\"31\":\"Cape Verde\",\"32\":\"Cayman Islands\",\"33\":\"Central African Republic\",\"34\":\"Chad\",\"35\":\"Chile\",\"36\":\"China\",\"37\":\"Colombia\",\"38\":\"Congo\",\"40\":\"Croatia\",\"41\":\"Cyprus\",\"42\":\"Czech Republic\",\"43\":\"Denmark\",\"44\":\"Djibouti\",\"45\":\"Ecuador\",\"46\":\"Egypt\",\"47\":\"El Salvador\",\"48\":\"Equatorial Guinea\",\"49\":\"Eritrea\",\"50\":\"Estonia\",\"51\":\"Ethiopia\",\"52\":\"Fiji\",\"53\":\"Finland\",\"54\":\"France\",\"56\":\"Gabon\",\"57\":\"Gambia\",\"58\":\"Georgia\",\"59\":\"Germany\",\"60\":\"Ghana\",\"61\":\"Greece\",\"62\":\"Guam\",\"63\":\"Guinea\",\"64\":\"Guinea-Bissau\",\"65\":\"Guyana\",\"66\":\"Honduras\",\"67\":\"Hong Kong\",\"68\":\"Hungary\",\"69\":\"Iceland\",\"70\":\"India\",\"71\":\"Indonesia\",\"74\":\"Ireland\",\"75\":\"Israel\",\"76\":\"Italy\",\"78\":\"Japan\",\"79\":\"Jordan\",\"80\":\"Kazakhstan\",\"81\":\"Kenya\",\"82\":\"Kuwait\",\"83\":\"Kyrgyzstan\",\"84\":\"Lao People's Democratic Republic\",\"85\":\"Latvia\",\"86\":\"Lebanon\",\"87\":\"Lesotho\",\"88\":\"Liberia\",\"90\":\"Liechtenstein\",\"91\":\"Lithuania\",\"92\":\"Luxembourg\",\"93\":\"Macedonia\",\"94\":\"Madagascar\",\"95\":\"Malawi\",\"96\":\"Malaysia\",\"97\":\"Maldives\",\"98\":\"Mali\",\"99\":\"Malta\",\"100\":\"Mauritania\",\"101\":\"Mexico\",\"102\":\"Moldova\",\"103\":\"Monaco\",\"104\":\"Mongolia\",\"105\":\"Morocco\",\"106\":\"Mozambique\",\"107\":\"Namibia\",\"108\":\"Nepal\",\"109\":\"Netherlands\",\"110\":\"Netherlands Antilles\",\"111\":\"New Zealand\",\"112\":\"Nicaragua\",\"113\":\"Niger\",\"114\":\"Nigeria\",\"116\":\"Norway\",\"117\":\"Oman\",\"118\":\"Pakistan\",\"119\":\"Panama\",\"120\":\"Paraguay\",\"121\":\"Peru\",\"122\":\"Philippines\",\"123\":\"Poland\",\"124\":\"Portugal\",\"126\":\"Qatar\",\"127\":\"Reunion\",\"128\":\"Romania\",\"129\":\"Russia\",\"130\":\"Rwanda\",\"132\":\"Samoa (Independent)\",\"133\":\"Saudi Arabia\",\"134\":\"Senegal\",\"135\":\"Seychelles\",\"136\":\"Sierra Leone\",\"137\":\"Singapore\",\"138\":\"Slovakia\",\"139\":\"Slovenia\",\"140\":\"Somalia\",\"141\":\"South Africa\",\"142\":\"South Korea\",\"143\":\"Spain\",\"144\":\"Sri Lanka\",\"146\":\"Suriname\",\"147\":\"Swaziland\",\"148\":\"Sweden\",\"149\":\"Switzerland\",\"152\":\"Taiwan\",\"153\":\"Tanzania\",\"154\":\"Thailand\",\"155\":\"Togo\",\"156\":\"Tunisia\",\"157\":\"Turkiye\",\"158\":\"Turkmenistan\",\"159\":\"Uganda\",\"161\":\"Ukraine\",\"162\":\"United Arab Emirates\",\"163\":\"Uruguay\",\"164\":\"USA\",\"165\":\"Uzbekistan\",\"166\":\"Vatican City State (Holy See)\",\"167\":\"Venezuela\",\"168\":\"Vietnam\",\"169\":\"Virgin Islands (British)\",\"170\":\"Yemen\",\"173\":\"Zambia\",\"174\":\"Zimbabwe\",\"175\":\"Antigua And Barbuda\",\"176\":\"Anguilla\",\"178\":\"American Samoa\",\"179\":\"Aruba\",\"180\":\"Brunei Darussalam\",\"181\":\"Bouvet Island\",\"183\":\"Cook Islands\",\"185\":\"Christmas Island\",\"187\":\"Dominican Republic\",\"188\":\"Western Sahara\",\"189\":\"Falkland Islands\",\"191\":\"Faroe Islands\",\"192\":\"Grenada\",\"193\":\"French Guiana\",\"194\":\"Gibraltar\",\"195\":\"Greenland\",\"196\":\"Guadeloupe\",\"198\":\"Guatemala\",\"200\":\"Haiti\",\"202\":\"Jamaica\",\"203\":\"Kiribati\",\"204\":\"Comoros\",\"205\":\"Saint Kitts and Nevis\",\"206\":\"Saint Lucia\",\"207\":\"Marshall Islands\",\"208\":\"Macau\",\"210\":\"Martinique\",\"212\":\"Mauritius\",\"213\":\"New Caledonia\",\"214\":\"Norfolk Island\",\"215\":\"Nauru\",\"217\":\"Niue\",\"219\":\"Papua New Guinea\",\"221\":\"Pitcairn\",\"222\":\"Palau\",\"223\":\"Solomon Islands\",\"225\":\"Svalbard and Jan Mayen Islands\",\"227\":\"San Marino\",\"232\":\"Tonga\",\"233\":\"Timor-Leste\",\"234\":\"Trinidad and Tobago\",\"235\":\"Tuvalu\",\"237\":\"Saint Vincent and the Grenadines\",\"238\":\"Virgin Islands (U.S.)\",\"239\":\"Vanuatu\",\"241\":\"Mayotte\",\"242\":\"Myanmar\",\"255\":\"Sao Tome and Principe\",\"257\":\"South Georgia and the South Sandwich Islands\",\"260\":\"Tajikistan\",\"262\":\"United Kingdom\",\"268\":\"Costa Rica\",\"270\":\"Guernsey\",\"272\":\"North Korea\",\"274\":\"Afghanistan\",\"275\":\"Cote D'Ivoire\",\"276\":\"Cuba\",\"277\":\"French Polynesia\",\"278\":\"Iran\",\"279\":\"Iraq\",\"281\":\"Libya\",\"282\":\"Palestine\",\"285\":\"Syria\",\"286\":\"Aaland Islands\",\"287\":\"Turks &#038; Caicos Islands\",\"288\":\"Jersey  (Channel Islands)\",\"289\":\"Dominica\",\"290\":\"Montenegro\",\"293\":\"Sudan\",\"294\":\"Montserrat\",\"298\":\"Curacao\",\"302\":\"Sint Maarten\",\"311\":\"South Sudan\",\"315\":\"Republic of Kosovo\",\"318\":\"Congo, Democratic Republic of the\",\"323\":\"Isle of Man\",\"324\":\"Saint Martin\",\"325\":\"Bonaire, Saint Eustatius and Saba\",\"326\":\"Serbia\",\"327\":\"Saint Barthelemy\"},\"defaultcountry\":164},\"PHONE\":{\"name\":\"PHONE\",\"label\":\"Phone Number\",\"helper_text\":\"\",\"type\":\"phone\",\"required\":false,\"audience_field_name\":\"Phone Number\",\"phoneformat\":\"\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":4},\"MMERGE8\":{\"name\":\"MMERGE8\",\"label\":\"Prod ID\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Prod ID\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":8},\"MMERGE9\":{\"name\":\"MMERGE9\",\"label\":\"Prod Descrip\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Prod Descrip\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":9},\"MMERGE10\":{\"name\":\"MMERGE10\",\"label\":\"Version\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Version\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":10},\"MMERGE11\":{\"name\":\"MMERGE11\",\"label\":\"Customer Notes\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Customer Notes\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":11},\"MMERGE5\":{\"name\":\"MMERGE5\",\"label\":\"Untitled\",\"helper_text\":\"\",\"type\":\"number\",\"required\":false,\"audience_field_name\":\"Untitled\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":5},\"MMERGE6\":{\"name\":\"MMERGE6\",\"label\":\"Address\",\"helper_text\":\"\",\"type\":\"address\",\"required\":false,\"audience_field_name\":\"Address\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":6,\"countries\":{\"2\":\"Albania\",\"3\":\"Algeria\",\"4\":\"Andorra\",\"5\":\"Angola\",\"6\":\"Argentina\",\"7\":\"Armenia\",\"8\":\"Australia\",\"9\":\"Austria\",\"10\":\"Azerbaijan\",\"11\":\"Bahamas\",\"12\":\"Bahrain\",\"13\":\"Bangladesh\",\"14\":\"Barbados\",\"15\":\"Belarus\",\"16\":\"Belgium\",\"17\":\"Belize\",\"18\":\"Benin\",\"19\":\"Bermuda\",\"20\":\"Bhutan\",\"21\":\"Bolivia\",\"22\":\"Bosnia and Herzegovina\",\"23\":\"Botswana\",\"24\":\"Brazil\",\"25\":\"Bulgaria\",\"26\":\"Burkina Faso\",\"27\":\"Burundi\",\"28\":\"Cambodia\",\"29\":\"Cameroon\",\"30\":\"Canada\",\"31\":\"Cape Verde\",\"32\":\"Cayman Islands\",\"33\":\"Central African Republic\",\"34\":\"Chad\",\"35\":\"Chile\",\"36\":\"China\",\"37\":\"Colombia\",\"38\":\"Congo\",\"40\":\"Croatia\",\"41\":\"Cyprus\",\"42\":\"Czech Republic\",\"43\":\"Denmark\",\"44\":\"Djibouti\",\"45\":\"Ecuador\",\"46\":\"Egypt\",\"47\":\"El Salvador\",\"48\":\"Equatorial Guinea\",\"49\":\"Eritrea\",\"50\":\"Estonia\",\"51\":\"Ethiopia\",\"52\":\"Fiji\",\"53\":\"Finland\",\"54\":\"France\",\"56\":\"Gabon\",\"57\":\"Gambia\",\"58\":\"Georgia\",\"59\":\"Germany\",\"60\":\"Ghana\",\"61\":\"Greece\",\"62\":\"Guam\",\"63\":\"Guinea\",\"64\":\"Guinea-Bissau\",\"65\":\"Guyana\",\"66\":\"Honduras\",\"67\":\"Hong Kong\",\"68\":\"Hungary\",\"69\":\"Iceland\",\"70\":\"India\",\"71\":\"Indonesia\",\"74\":\"Ireland\",\"75\":\"Israel\",\"76\":\"Italy\",\"78\":\"Japan\",\"79\":\"Jordan\",\"80\":\"Kazakhstan\",\"81\":\"Kenya\",\"82\":\"Kuwait\",\"83\":\"Kyrgyzstan\",\"84\":\"Lao People's Democratic Republic\",\"85\":\"Latvia\",\"86\":\"Lebanon\",\"87\":\"Lesotho\",\"88\":\"Liberia\",\"90\":\"Liechtenstein\",\"91\":\"Lithuania\",\"92\":\"Luxembourg\",\"93\":\"Macedonia\",\"94\":\"Madagascar\",\"95\":\"Malawi\",\"96\":\"Malaysia\",\"97\":\"Maldives\",\"98\":\"Mali\",\"99\":\"Malta\",\"100\":\"Mauritania\",\"101\":\"Mexico\",\"102\":\"Moldova\",\"103\":\"Monaco\",\"104\":\"Mongolia\",\"105\":\"Morocco\",\"106\":\"Mozambique\",\"107\":\"Namibia\",\"108\":\"Nepal\",\"109\":\"Netherlands\",\"110\":\"Netherlands Antilles\",\"111\":\"New Zealand\",\"112\":\"Nicaragua\",\"113\":\"Niger\",\"114\":\"Nigeria\",\"116\":\"Norway\",\"117\":\"Oman\",\"118\":\"Pakistan\",\"119\":\"Panama\",\"120\":\"Paraguay\",\"121\":\"Peru\",\"122\":\"Philippines\",\"123\":\"Poland\",\"124\":\"Portugal\",\"126\":\"Qatar\",\"127\":\"Reunion\",\"128\":\"Romania\",\"129\":\"Russia\",\"130\":\"Rwanda\",\"132\":\"Samoa (Independent)\",\"133\":\"Saudi Arabia\",\"134\":\"Senegal\",\"135\":\"Seychelles\",\"136\":\"Sierra Leone\",\"137\":\"Singapore\",\"138\":\"Slovakia\",\"139\":\"Slovenia\",\"140\":\"Somalia\",\"141\":\"South Africa\",\"142\":\"South Korea\",\"143\":\"Spain\",\"144\":\"Sri Lanka\",\"146\":\"Suriname\",\"147\":\"Swaziland\",\"148\":\"Sweden\",\"149\":\"Switzerland\",\"152\":\"Taiwan\",\"153\":\"Tanzania\",\"154\":\"Thailand\",\"155\":\"Togo\",\"156\":\"Tunisia\",\"157\":\"Turkiye\",\"158\":\"Turkmenistan\",\"159\":\"Uganda\",\"161\":\"Ukraine\",\"162\":\"United Arab Emirates\",\"163\":\"Uruguay\",\"164\":\"USA\",\"165\":\"Uzbekistan\",\"166\":\"Vatican City State (Holy See)\",\"167\":\"Venezuela\",\"168\":\"Vietnam\",\"169\":\"Virgin Islands (British)\",\"170\":\"Yemen\",\"173\":\"Zambia\",\"174\":\"Zimbabwe\",\"175\":\"Antigua And Barbuda\",\"176\":\"Anguilla\",\"178\":\"American Samoa\",\"179\":\"Aruba\",\"180\":\"Brunei Darussalam\",\"181\":\"Bouvet Island\",\"183\":\"Cook Islands\",\"185\":\"Christmas Island\",\"187\":\"Dominican Republic\",\"188\":\"Western Sahara\",\"189\":\"Falkland Islands\",\"191\":\"Faroe Islands\",\"192\":\"Grenada\",\"193\":\"French Guiana\",\"194\":\"Gibraltar\",\"195\":\"Greenland\",\"196\":\"Guadeloupe\",\"198\":\"Guatemala\",\"200\":\"Haiti\",\"202\":\"Jamaica\",\"203\":\"Kiribati\",\"204\":\"Comoros\",\"205\":\"Saint Kitts and Nevis\",\"206\":\"Saint Lucia\",\"207\":\"Marshall Islands\",\"208\":\"Macau\",\"210\":\"Martinique\",\"212\":\"Mauritius\",\"213\":\"New Caledonia\",\"214\":\"Norfolk Island\",\"215\":\"Nauru\",\"217\":\"Niue\",\"219\":\"Papua New Guinea\",\"221\":\"Pitcairn\",\"222\":\"Palau\",\"223\":\"Solomon Islands\",\"225\":\"Svalbard and Jan Mayen Islands\",\"227\":\"San Marino\",\"232\":\"Tonga\",\"233\":\"Timor-Leste\",\"234\":\"Trinidad and Tobago\",\"235\":\"Tuvalu\",\"237\":\"Saint Vincent and the Grenadines\",\"238\":\"Virgin Islands (U.S.)\",\"239\":\"Vanuatu\",\"241\":\"Mayotte\",\"242\":\"Myanmar\",\"255\":\"Sao Tome and Principe\",\"257\":\"South Georgia and the South Sandwich Islands\",\"260\":\"Tajikistan\",\"262\":\"United Kingdom\",\"268\":\"Costa Rica\",\"270\":\"Guernsey\",\"272\":\"North Korea\",\"274\":\"Afghanistan\",\"275\":\"Cote D'Ivoire\",\"276\":\"Cuba\",\"277\":\"French Polynesia\",\"278\":\"Iran\",\"279\":\"Iraq\",\"281\":\"Libya\",\"282\":\"Palestine\",\"285\":\"Syria\",\"286\":\"Aaland Islands\",\"287\":\"Turks &#038; Caicos Islands\",\"288\":\"Jersey  (Channel Islands)\",\"289\":\"Dominica\",\"290\":\"Montenegro\",\"293\":\"Sudan\",\"294\":\"Montserrat\",\"298\":\"Curacao\",\"302\":\"Sint Maarten\",\"311\":\"South Sudan\",\"315\":\"Republic of Kosovo\",\"318\":\"Congo, Democratic Republic of the\",\"323\":\"Isle of Man\",\"324\":\"Saint Martin\",\"325\":\"Bonaire, Saint Eustatius and Saba\",\"326\":\"Serbia\",\"327\":\"Saint Barthelemy\"},\"defaultcountry\":\"164\"},\"MMERGE7\":{\"name\":\"MMERGE7\",\"label\":\"Phone Number\",\"helper_text\":\"\",\"type\":\"phone\",\"required\":false,\"audience_field_name\":\"Phone Number\",\"phoneformat\":\"none\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":7},\"MMERGE12\":{\"name\":\"MMERGE12\",\"label\":\"Date\",\"helper_text\":\"\",\"type\":\"date\",\"required\":false,\"audience_field_name\":\"Date\",\"dateformat\":\"MM\/DD\/YYYY\",\"enabled\":false,\"order\":null,\"field_type\":\"merge\",\"merge_id\":12}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n        var isRequired = smsField ? smsField.required : false;\n        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n        \n        var phoneInput = document.querySelector('#mce-' + fieldName);\n        if (phoneInput &#038;&#038; selectedProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n          phoneInput.value = selectedProgram.countryCallingCode;\n        }\n        \n        \n        updateSmsLegalText(selectedCountry, fieldName);\n        updatePlaceholder(selectedCountry, fieldName);\n        updateCountryCodeInstruction(selectedCountry, fieldName);\n      });\n    }\n\n    document.addEventListener('DOMContentLoaded', function() {\n      const smsPhoneFields = document.querySelectorAll('[id^=\"country-select-\"]');\n      \n      smsPhoneFields.forEach(function(dropdown) {\n        const fieldName = dropdown?.id.replace('country-select-', '');\n        initializeSmsPhoneDropdown(fieldName);\n      });\n    });\n    <\/script><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"50\" data-attachment-id=\"421\" data-permalink=\"https:\/\/uisoftware.com\/it\/artmaticctx\/screen-shot-2020-05-26-at-12-06-56-pm\/\" data-orig-file=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?fit=1304%2C64&amp;ssl=1\" data-orig-size=\"1304,64\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screen-Shot-2020-05-26-at-12.06.56-PM\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?fit=1024%2C50&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1024%2C50&#038;ssl=1\" alt=\"\" class=\"wp-image-421\" srcset=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1024%2C50&amp;ssl=1 1024w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=300%2C15&amp;ssl=1 300w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=768%2C38&amp;ssl=1 768w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1200%2C59&amp;ssl=1 1200w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?w=1304&amp;ssl=1 1304w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 id=\"h-support-tiers\" class=\"wp-block-heading\">Support Tiers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We are working to define these for the project and pick a platform. Currently exploring these options. If you have other ideas, please email us at support@uisoftware.com<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>MetaSynth Plugin only<\/li>\n\n\n\n<li>MetaSynth app only<\/li>\n\n\n\n<li>Plugin+App<\/li>\n\n\n\n<li>Add 1:1 Training Sessions<\/li>\n\n\n\n<li>Add New Book<\/li>\n\n\n\n<li>Add T-Shirt<\/li>\n\n\n\n<li>Add VIP access to development journey<\/li>\n\n\n\n<li>Early access to software builds<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"50\" data-attachment-id=\"421\" data-permalink=\"https:\/\/uisoftware.com\/it\/artmaticctx\/screen-shot-2020-05-26-at-12-06-56-pm\/\" data-orig-file=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?fit=1304%2C64&amp;ssl=1\" data-orig-size=\"1304,64\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screen-Shot-2020-05-26-at-12.06.56-PM\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?fit=1024%2C50&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1024%2C50&#038;ssl=1\" alt=\"\" class=\"wp-image-421\" srcset=\"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1024%2C50&amp;ssl=1 1024w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=300%2C15&amp;ssl=1 300w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=768%2C38&amp;ssl=1 768w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?resize=1200%2C59&amp;ssl=1 1200w, https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-26-at-12.06.56-PM.png?w=1304&amp;ssl=1 1304w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 id=\"h-take-the-metasynth-cross-platform-survey\" class=\"wp-block-heading\">Take the MetaSynth Cross Platform Survey<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Click here: <a href=\"https:\/\/www.surveymonkey.com\/r\/YHKFKYZ\">https:\/\/www.surveymonkey.com\/r\/YHKFKYZ<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>MetaSynth is coming to Windows\u2014and you hold the key. We\u2019ve completed code review and lined up our lead developer. Now, we just need you. We\u2019re bringing the full MetaSynth experience and a dedicated VST plugin of our legendary\u00a0Image Synth\u00a0sequencer to the PC. This is a &#8220;go\/no-go&#8221; moment. Join the list to cast your vote, track&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/uisoftware.com\/it\/windows-apps\/\">Leggi tutto<\/a><\/p>","protected":false},"author":150113988,"featured_media":3088,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"{\"document\":\"AAAM4a3AiBXJApO1mvcI6QEIGowJggiugwukBZwHAQIMAgECCgJCAQRKAKgCAQIKAroFDDgGAgbOBwEDSgCOCAECCgJCAQNKAJYIAQIKAEoAEgECCgEISgAkAQIKAkIBBEoAOAECCgJCAQNKAK4FAQIKAQRKGgIBAgoCQkoAPAECCgJCSgA2AQIKAkJKACYBAgoCQkoAhAEBAgoCQkoAKgECCgJCSgAoAQIKAkJKAJwBAQIKAkJK5ga2BwECCgEISgAkAQIKAiYOdgEESgCgAQECCgJCAQNKAKoDAQIKAQRK3h+EAYIaaAEAiAFStgQDBgQDC+TCC7CLCxCcqwuEAYIaDgEJwL0LsIsL1wIoAycABAAnAAQAgQCEAIEAhAAnACgEJwAoBCcABwAoAycBBAAoBicAhwAoAycBBACEBSgFJwCHACgDJwEEACgFJwCHACgDJwAoAScAhwAoAycAKAEnACgHJwCHACgDJwEEACgGJwCHACgDJwEEACgFJwCHACgDJwAoBicABwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycAKAEnACgHJwCHACgDJwEEAIQBKAYnAIcAKAMnAQQAKAUnAIcAKAMnASgFJwAoAcQCKAKoAMQAqADEAKgAxACoAMQAqADEAKgAxACoAMQAqADEAKgAxACoAMQAqADEAKgAxACoAMQBIQQAACEAAAAhBgAAIQAAj4sDuYgDc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzbHVnZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlV2luZG93cyBBcHBzZG9jdW1lbnRjb250ZW50PCEtLSB3cDpoZWFkaW5nIHsiYW5jaG9yIjoiaC1tZXRhc3ludGgtaXMtY29taW5nLXRvLXdpbmRvd3MtYW5kLXlvdS1ob2xkLXRoZS1rZXkifSAtLT4KPGgyIGlkPSJoLW1ldGFzeW50aC1pcy1jb21pbmctdG8td2luZG93cy1hbmQteW91LWhvbGQtdGhlLWtleSIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+TWV0YVN5bnRoIGlzIGNvbWluZyB0byBXaW5kb3dz4oCUYW5kIHlvdSBob2xkIHRoZSBrZXkuPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBpcyBhICJnby9uby1nbyIgbW9tZW50LiBKb2luIHRoZSBsaXN0IHRvIGNhc3QgeW91ciB2b3RlLCB0cmFjayBvdXIgcHJvZ3Jlc3MsIGFuZCBoZWxwIHVzIGdyZWVuLWxpZ2h0IHRoZSBtb3N0IHVuaXF1ZSBzb3VuZC1kZXNpZ24gdG9vbCBldmVyIGJ1aWx0IGZvciBXaW5kb3dzLiBJZiB5b3Ugd2FudCB0byBzZWUgTWV0YVN5bnRoIG9uIFBDLCBzaWduIHVwIGJlbG93IHRvIG1ha2UgaXQgYSByZWFsaXR5LiBMZXTigJlzIGJ1aWxkIHRoaXMhPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmh0bWwgLS0+CjxkaXYgaWQ9Im1jX2VtYmVkX3NoZWxsIj4KICAgICAgPGxpbmsgaHJlZj0iLy9jZG4taW1hZ2VzLm1haWxjaGltcC5jb20vZW1iZWRjb2RlL2NsYXNzaWMtMDYxNTIzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgICAjbWNfZW1iZWRfc2lnbnVwe2JhY2tncm91bmQ6I2ZmZjsgZmFsc2U7Y2xlYXI6bGVmdDsgZm9udDoxNHB4IEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyB3aWR0aDogNjAwcHg7fQogICAgICAgIC8qIEFkZCB5b3VyIG93biBNYWlsY2hpbXAgZm9ybSBzdHlsZSBvdmVycmlkZXMgaW4geW91ciBzaXRlIHN0eWxlc2hlZXQgb3IgaW4gdGhpcyBzdHlsZSBibG9jay4KICAgICAgICAgICBXZSByZWNvbW1lbmQgbW92aW5nIHRoaXMgYmxvY2sgYW5kIHRoZSBwcmVjZWRpbmcgQ1NTIGxpbmsgdG8gdGhlIEhFQUQgb2YgeW91ciBIVE1MIGZpbGUuICovCjwvc3R5bGU+CjxkaXYgaWQ9Im1jX2VtYmVkX3NpZ251cCI+CiAgICA8Zm9ybSBhY3Rpb249Imh0dHBzOi8vdWlzb2Z0d2FyZS51czE5Lmxpc3QtbWFuYWdlLmNvbS9zdWJzY3JpYmUvcG9zdD91PWY4ZWMxOThlMjA3NGY0NmE1ODZhOTBmYmImYW1wO2lkPTI1NWZmNGNkYWMmYW1wO2ZfaWQ9MDA0ZmFhZTZmMCIgbWV0aG9kPSJwb3N0IiBpZD0ibWMtZW1iZWRkZWQtc3Vic2NyaWJlLWZvcm0iIG5hbWU9Im1jLWVtYmVkZGVkLXN1YnNjcmliZS1mb3JtIiBjbGFzcz0idmFsaWRhdGUiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICA8ZGl2IGlkPSJtY19lbWJlZF9zaWdudXBfc2Nyb2xsIj48aDI+Sm9pbiBXaW5kb3dzIEFwcHMgV2FpdGxpc3Q8L2gyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0ZXMtcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJhc3RlcmlzayI+Kjwvc3Bhbj4gaW5kaWNhdGVzIHJlcXVpcmVkPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1jLWZpZWxkLWdyb3VwIj48bGFiZWwgZm9yPSJtY2UtRU1BSUwiPkVtYWlsIEFkZHJlc3MgPHNwYW4gY2xhc3M9ImFzdGVyaXNrIj4qPC9zcGFuPjwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSJFTUFJTCIgY2xhc3M9InJlcXVpcmVkIGVtYWlsIiBpZD0ibWNlLUVNQUlMIiByZXF1aXJlZD0iIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCI+PGxhYmVsIGZvcj0ibWNlLUZOQU1FIj5GaXJzdCBOYW1lIDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkZOQU1FIiBjbGFzcz0iIHRleHQiIGlkPSJtY2UtRk5BTUUiIHZhbHVlPSIiPjwvZGl2PjxkaXYgY2xhc3M9Im1jLWZpZWxkLWdyb3VwIj48bGFiZWwgZm9yPSJtY2UtTE5BTUUiPkxhc3QgTmFtZSA8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJMTkFNRSIgY2xhc3M9IiB0ZXh0IiBpZD0ibWNlLUxOQU1FIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCBpbnB1dC1ncm91cCI+PHN0cm9uZz5XaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiogTWFrZSBzdXJlIHRvIHNlbGVjdCBhcHBzIG9mIGludGVyZXN0IHNvIHdlIGtub3cgeW91IGFyZSByZWFsIGFuZCB3aGljaCBhcHAgdG8gZm9jdXMgb24uPC9zcGFuPiA8L3N0cm9uZz48dWw+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVsxXSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0wIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMCI+TWV0YVN5bnRoIChXaW5kb3dzIEFwcCk8L2xhYmVsPjwvbGk+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVsyXSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0xIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMSI+SW1hZ2UgU2VxdWVuY2VyIChWU1QgcGx1Zy1pbik8L2xhYmVsPjwvbGk+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVs0XSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0yIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMiI+WHggW01JREkgZm9yIE1ldGFTeW50aF0gKFdpbmRvd3MgQXBwKTwvbGFiZWw+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGhpZGRlbj0iIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YWdzIiB2YWx1ZT0iMjQyOTMzMzgiPjwvZGl2PgogICAgICAgIDxkaXYgaWQ9Im1jZS1yZXNwb25zZXMiIGNsYXNzPSJjbGVhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlc3BvbnNlIiBpZD0ibWNlLWVycm9yLXJlc3BvbnNlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXNwb25zZSIgaWQ9Im1jZS1zdWNjZXNzLXJlc3BvbnNlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2PgogICAgICAgIDwvZGl2PjxkaXYgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC01MDAwcHg7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYl9mOGVjMTk4ZTIwNzRmNDZhNTg2YTkwZmJiXzI1NWZmNGNkYWMiIHRhYmluZGV4PSItMSIgdmFsdWU9IiI+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1YnNjcmliZSIgaWQ9Im1jLWVtYmVkZGVkLXN1YnNjcmliZSIgY2xhc3M9ImJ1dHRvbiIgdmFsdWU9IlN1YnNjcmliZSI+PC9kaXY+CiAgICA8L2Rpdj4KPC9mb3JtPgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9zMy5hbWF6b25hd3MuY29tL2Rvd25sb2Fkcy5tYWlsY2hpbXAuY29tL2pzL21jLXZhbGlkYXRlLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KGZ1bmN0aW9uKCQpIHt3aW5kb3cuZm5hbWVzID0gbmV3IEFycmF5KCk7IHdpbmRvdy5mdHlwZXMgPSBuZXcgQXJyYXkoKTtmbmFtZXNbMF09J0VNQUlMJztmdHlwZXNbMF09J2VtYWlsJztmbmFtZXNbMV09J0ZOQU1FJztmdHlwZXNbMV09J3RleHQnO2ZuYW1lc1syXT0nTE5BTUUnO2Z0eXBlc1syXT0ndGV4dCc7Zm5hbWVzWzNdPSdBRERSRVNTJztmdHlwZXNbM109J2FkZHJlc3MnO2ZuYW1lc1s0XT0nUEhPTkUnO2Z0eXBlc1s0XT0ncGhvbmUnO2ZuYW1lc1s4XT0nTU1FUkdFOCc7ZnR5cGVzWzhdPSd0ZXh0JztmbmFtZXNbOV09J01NRVJHRTknO2Z0eXBlc1s5XT0ndGV4dCc7Zm5hbWVzWzEwXT0nTU1FUkdFMTAnO2Z0eXBlc1sxMF09J3RleHQnO2ZuYW1lc1sxMV09J01NRVJHRTExJztmdHlwZXNbMTFdPSd0ZXh0JztmbmFtZXNbNV09J01NRVJHRTUnO2Z0eXBlc1s1XT0nbnVtYmVyJztmbmFtZXNbNl09J01NRVJHRTYnO2Z0eXBlc1s2XT0nYWRkcmVzcyc7Zm5hbWVzWzddPSdNTUVSR0U3JztmdHlwZXNbN109J3Bob25lJztmbmFtZXNbMTJdPSdNTUVSR0UxMic7ZnR5cGVzWzEyXT0nZGF0ZSc7fShqUXVlcnkpKTt2YXIgJG1jaiA9IGpRdWVyeS5ub0NvbmZsaWN0KHRydWUpOwogICAgLy8gU01TIFBob25lIE11bHRpLUNvdW50cnkgRnVuY3Rpb25hbGl0eQogICAgaWYoIXdpbmRvdy5NQykgewogICAgICB3aW5kb3cuTUMgPSB7fTsKICAgIH0KICAgIHdpbmRvdy5NQy5zbXNQaG9uZURhdGEgPSB7CiAgICAgIGRlZmF1bHRDb3VudHJ5Q29kZTogJ1VTJywKICAgICAgcHJvZ3JhbXM6IFtdLAogICAgICBzbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lczogW10KICAgIH07CgogICAgZnVuY3Rpb24gZ2V0Q291bnRyeVVuaWNvZGVGbGFnKGNvdW50cnlDb2RlKSB7CiAgICAgICByZXR1cm4gY291bnRyeUNvZGUudG9VcHBlckNhc2UoKS5yZXBsYWNlKC8uL2csIChjaGFyKSA9PiBTdHJpbmcuZnJvbUNvZGVQb2ludChjaGFyLmNoYXJDb2RlQXQoMCkgKyAxMjczOTcpKQogICAgfTsKCiAgICAvLyBIVE1MIHNhbml0aXphdGlvbiBmdW5jdGlvbiB0byBwcmV2ZW50IFhTUwogICAgZnVuY3Rpb24gc2FuaXRpemVIdG1sKHN0cikgewogICAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHJldHVybiAnJzsKICAgICAgcmV0dXJuIHN0cgogICAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpCiAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JykKICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7JykKICAgICAgICAucmVwbGFjZSgvXC8vZywgJyYjeDJGOycpOwogICAgfQoKICAgIC8vIFVSTCBzYW5pdGl6YXRpb24gZnVuY3Rpb24gdG8gcHJldmVudCBqYXZhc2NyaXB0OiBhbmQgZGF0YTogVVJMcwogICAgZnVuY3Rpb24gc2FuaXRpemVVcmwodXJsKSB7CiAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykgcmV0dXJuICcnOwogICAgICBjb25zdCB0cmltbWVkVXJsID0gdXJsLnRyaW0oKS50b0xvd2VyQ2FzZSgpOwogICAgICBpZiAodHJpbW1lZFVybC5zdGFydHNXaXRoKCdqYXZhc2NyaXB0OicpIHx8IHRyaW1tZWRVcmwuc3RhcnRzV2l0aCgnZGF0YTonKSB8fCB0cmltbWVkVXJsLnN0YXJ0c1dpdGgoJ3Zic2NyaXB0OicpKSB7CiAgICAgICAgcmV0dXJuICcjJzsKICAgICAgfQogICAgICByZXR1cm4gdXJsOwogICAgfQoKICAgIGNvbnN0IGdldEJyb3dzZXJMYW5ndWFnZSA9ICgpID0+IHsKICAgICAgaWYgKCF3aW5kb3c\/Lm5hdmlnYXRvcj8ubGFuZ3VhZ2U\/LnNwbGl0KCctJylbMV0pIHsKICAgICAgICByZXR1cm4gd2luZG93Py5uYXZpZ2F0b3I\/Lmxhbmd1YWdlPy50b1VwcGVyQ2FzZSgpOwogICAgICB9CiAgICAgIHJldHVybiB3aW5kb3c\/Lm5hdmlnYXRvcj8ubGFuZ3VhZ2U\/LnNwbGl0KCctJylbMV07CiAgICB9OwoKICAgIAogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdENvdW50cnlQcm9ncmFtKGRlZmF1bHRDb3VudHJ5Q29kZSwgc21zUHJvZ3JhbURhdGEpIHsKICAgICAgaWYgKCFzbXNQcm9ncmFtRGF0YSB8fCBzbXNQcm9ncmFtRGF0YS5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQoKICAgICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlID0gZ2V0QnJvd3Nlckxhbmd1YWdlKCk7CgogICAgICBpZiAoYnJvd3Nlckxhbmd1YWdlKSB7CiAgICAgICAgY29uc3QgZm91bmRQcm9ncmFtID0gc21zUHJvZ3JhbURhdGEuZmluZCgKICAgICAgICAgIChwcm9ncmFtKSA9PiBwcm9ncmFtPy5jb3VudHJ5Q29kZSA9PT0gYnJvd3Nlckxhbmd1YWdlLAogICAgICAgICk7CiAgICAgICAgaWYgKGZvdW5kUHJvZ3JhbSkgewogICAgICAgICAgcmV0dXJuIGZvdW5kUHJvZ3JhbTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChkZWZhdWx0Q291bnRyeUNvZGUpIHsKICAgICAgICBjb25zdCBmb3VuZFByb2dyYW0gPSBzbXNQcm9ncmFtRGF0YS5maW5kKAogICAgICAgICAgKHByb2dyYW0pID0+IHByb2dyYW0\/LmNvdW50cnlDb2RlID09PSBkZWZhdWx0Q291bnRyeUNvZGUsCiAgICAgICAgKTsKICAgICAgICBpZiAoZm91bmRQcm9ncmFtKSB7CiAgICAgICAgICByZXR1cm4gZm91bmRQcm9ncmFtOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHNtc1Byb2dyYW1EYXRhWzBdOwogICAgfQoKICAgIGZ1bmN0aW9uIHVwZGF0ZVNtc0xlZ2FsVGV4dChjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgIWZpZWxkTmFtZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcHJvZ3JhbXMgPSB3aW5kb3c\/Lk1DPy5zbXNQaG9uZURhdGE\/LnByb2dyYW1zOwogICAgICBpZiAoIXByb2dyYW1zIHx8ICFBcnJheS5pc0FycmF5KHByb2dyYW1zKSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcHJvZ3JhbSA9IHByb2dyYW1zLmZpbmQocHJvZ3JhbSA9PiBwcm9ncmFtPy5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGUpOwogICAgICBpZiAoIXByb2dyYW0gfHwgIXByb2dyYW0ucmVxdWlyZWRUZW1wbGF0ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgCiAgICAgIAogICAgICB2YXIgc21zQ29uc2VudEh0bWxSZW5kZXJpbmdGaXhFbmFibGVkID0gdHJ1ZTsKICAgICAgCiAgICAgIGNvbnN0IGxlZ2FsVGV4dEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbGVnYWwtdGV4dC0nICsgZmllbGROYW1lKTsKICAgICAgaWYgKCFsZWdhbFRleHRFbGVtZW50KSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICBjb25zdCBkaXZSZWdleCA9IG5ldyBSZWdFeHAoJzwvP1tkaXZdW14+XSo+JywgJ2dpJyk7CiAgICAgIGNvbnN0IGJsb2NrV3JhcHBlclJlZ2V4ID0gbmV3IFJlZ0V4cCgnPC8\/KD86ZGl2fHApW14+XSo+JywgJ2dpJyk7CiAgICAgIGNvbnN0IGZ1bGxBbmNob3JSZWdleCA9IG5ldyBSZWdFeHAoJzxhLio\/PC9hPicsICdnJyk7CiAgICAgIGNvbnN0IGFuY2hvclJlZ2V4ID0gbmV3IFJlZ0V4cCgnPGEgaHJlZj0iKC4qPykiIHRhcmdldD0iKC4qPykiPiguKj8pPC9hPicpOwogICAgICAKICAgICAgY29uc3QgdGVtcGxhdGUgPSBzbXNDb25zZW50SHRtbFJlbmRlcmluZ0ZpeEVuYWJsZWQKICAgICAgICA\/IHByb2dyYW0ucmVxdWlyZWRUZW1wbGF0ZQogICAgICAgICAgICAucmVwbGFjZSgvPFwvcD5ccyo8cFtePl0qPi9naSwgJyAnKQogICAgICAgICAgICAucmVwbGFjZShibG9ja1dyYXBwZXJSZWdleCwgJycpCiAgICAgICAgOiBwcm9ncmFtLnJlcXVpcmVkVGVtcGxhdGUucmVwbGFjZShkaXZSZWdleCwgJycpOwogICAgICAKICAgICAgCgogICAgICBsZWdhbFRleHRFbGVtZW50LnRleHRDb250ZW50ID0gJyc7CiAgICAgIGNvbnN0IHBhcnRzID0gdGVtcGxhdGUuc3BsaXQoLyg8YSBocmVmPSIuKj8iIHRhcmdldD0iLio\/Ij4uKj88XC9hPikvZyk7CiAgICAgIHBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCkgewogICAgICAgIGlmICghcGFydCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBhbmNob3JNYXRjaCA9IHBhcnQubWF0Y2goLzxhIGhyZWY9IiguKj8pIiB0YXJnZXQ9IiguKj8pIj4oLio\/KTxcL2E+Lyk7CiAgICAgICAgaWYgKGFuY2hvck1hdGNoKSB7CiAgICAgICAgICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICAgIGxpbmtFbGVtZW50LmhyZWYgPSBzYW5pdGl6ZVVybChhbmNob3JNYXRjaFsxXSk7CiAgICAgICAgICBsaW5rRWxlbWVudC50YXJnZXQgPSBzYW5pdGl6ZUh0bWwoYW5jaG9yTWF0Y2hbMl0pOwogICAgICAgICAgbGlua0VsZW1lbnQudGV4dENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoYW5jaG9yTWF0Y2hbM10pOwogICAgICAgICAgbGVnYWxUZXh0RWxlbWVudC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGxlZ2FsVGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBnZW5lcmF0ZURyb3Bkb3duT3B0aW9ucyhzbXNQcm9ncmFtRGF0YSkgewogICAgICBpZiAoIXNtc1Byb2dyYW1EYXRhIHx8IHNtc1Byb2dyYW1EYXRhLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHJldHVybiAnJzsKICAgICAgfQoKICAgICAgdmFyIHByb2dyYW1zID0gZmFsc2UKICAgICAgICA\/IHNtc1Byb2dyYW1EYXRhLmZpbHRlcihmdW5jdGlvbihwLCBpLCBhcnIpIHsKICAgICAgICAgICAgcmV0dXJuIGFyci5maW5kSW5kZXgoZnVuY3Rpb24ocSkgeyByZXR1cm4gcS5jb3VudHJ5Q29kZSA9PT0gcC5jb3VudHJ5Q29kZTsgfSkgPT09IGk7CiAgICAgICAgICB9KQogICAgICAgIDogc21zUHJvZ3JhbURhdGE7CiAgICAgIAogICAgICByZXR1cm4gcHJvZ3JhbXMubWFwKHByb2dyYW0gPT4gewogICAgICAgIGNvbnN0IGZsYWcgPSBnZXRDb3VudHJ5VW5pY29kZUZsYWcocHJvZ3JhbS5jb3VudHJ5Q29kZSk7CiAgICAgICAgY29uc3QgY291bnRyeU5hbWUgPSBnZXRDb3VudHJ5TmFtZShwcm9ncmFtLmNvdW50cnlDb2RlKTsKICAgICAgICBjb25zdCBjYWxsaW5nQ29kZSA9IHByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlIHx8ICcnOwogICAgICAgIC8vIFNhbml0aXplIGFsbCB2YWx1ZXMgdG8gcHJldmVudCBYU1MKICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb3VudHJ5Q29kZSA9IHNhbml0aXplSHRtbChwcm9ncmFtLmNvdW50cnlDb2RlIHx8ICcnKTsKICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb3VudHJ5TmFtZSA9IHNhbml0aXplSHRtbChjb3VudHJ5TmFtZSB8fCAnJyk7CiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ2FsbGluZ0NvZGUgPSBzYW5pdGl6ZUh0bWwoY2FsbGluZ0NvZGUgfHwgJycpOwogICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIHNhbml0aXplZENvdW50cnlDb2RlICsgJyI+JyArIHNhbml0aXplZENvdW50cnlOYW1lICsgJyAnICsgc2FuaXRpemVkQ2FsbGluZ0NvZGUgKyAnPC9vcHRpb24+JzsKICAgICAgfSkuam9pbignJyk7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0Q291bnRyeU5hbWUoY291bnRyeUNvZGUpIHsKICAgICAgaWYgKHdpbmRvdy5NQz8uc21zUGhvbmVEYXRhPy5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lcyAmJiBBcnJheS5pc0FycmF5KHdpbmRvdy5NQy5zbXNQaG9uZURhdGEuc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXMpKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aW5kb3cuTUMuc21zUGhvbmVEYXRhLnNtc1Byb2dyYW1EYXRhQ291bnRyeU5hbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAod2luZG93Lk1DLnNtc1Bob25lRGF0YS5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lc1tpXS5jb2RlID09PSBjb3VudHJ5Q29kZSkgewogICAgICAgICAgICByZXR1cm4gd2luZG93Lk1DLnNtc1Bob25lRGF0YS5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lc1tpXS5uYW1lOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gY291bnRyeUNvZGU7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdFBsYWNlaG9sZGVyKGNvdW50cnlDb2RlKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgdHlwZW9mIGNvdW50cnlDb2RlICE9PSAnc3RyaW5nJykgewogICAgICAgIHJldHVybiAnKzEgMDAwIDAwMCAwMDAwJzsgLy8gRGVmYXVsdCBVUyBwbGFjZWhvbGRlcgogICAgICB9CiAgICAgIAogICAgICAgICAgICB2YXIgbW9ja1BsYWNlaG9sZGVycyA9IFsKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ1VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgVVMgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnR0InLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDQgMDAwMCAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBHQiBjb3VudHJ5IGNvZGUgKzQ0IGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0EnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMSAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBDQSBjb3VudHJ5IGNvZGUgKzEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys2MSAwMDAgMDAwIDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIEFVIGNvdW50cnkgY29kZSArNjEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdERScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0OSAwMDAgMDAwMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBERS1Mw6RuZGVydm9yd2FobCArNDkgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRlInLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzMgMCAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEZSICszMyBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRVMnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzQgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdXlhIGVsIGPDs2RpZ28gZGUgcGHDrXMgRVMgKzM0IGFudGVzIGRlbCBuw7ptZXJvIGRlIHRlbMOpZm9ubycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ05MJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMxIDAgMDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdWb2VnIGRlIE5MLWxhbmRjb2RlICszMSB0b2UgdsOzw7NyIGhldCB0ZWxlZm9vbm51bW1lcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0JFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMyIDAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEJFICszMiBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0gnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDEgMDAgMDAwIDAwIDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIENILUzDpG5kZXJ2b3J3YWhsICs0MSBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0MyAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgQVQtTMOkbmRlcnZvcndhaGwgKzQzIGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM1MyAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIElFIGNvdW50cnkgY29kZSArMzUzIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnSVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzkgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZXJlIGlsIHByZWZpc3NvIGludGVybmF6aW9uYWxlIElUICszOSBwcmltYSBkZWwgbnVtZXJvIGRpIHRlbGVmb25vJywKICAgICAgICB9LAogICAgICBdOwoKICAgICAgY29uc3Qgc2VsZWN0ZWRQbGFjZWhvbGRlciA9IG1vY2tQbGFjZWhvbGRlcnMuZmluZChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGU7CiAgICAgIH0pOwogICAgICAKICAgICAgcmV0dXJuIHNlbGVjdGVkUGxhY2Vob2xkZXIgPyBzZWxlY3RlZFBsYWNlaG9sZGVyLnBsYWNlaG9sZGVyIDogbW9ja1BsYWNlaG9sZGVyc1swXS5wbGFjZWhvbGRlcjsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVQbGFjZWhvbGRlcihjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgIWZpZWxkTmFtZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcGhvbmVJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtY2UtJyArIGZpZWxkTmFtZSk7CiAgICAgIGlmICghcGhvbmVJbnB1dCkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSBnZXREZWZhdWx0UGxhY2Vob2xkZXIoY291bnRyeUNvZGUpOwogICAgICBpZiAocGxhY2Vob2xkZXIpIHsKICAgICAgICBwaG9uZUlucHV0LnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVDb3VudHJ5Q29kZUluc3RydWN0aW9uKGNvdW50cnlDb2RlLCBmaWVsZE5hbWUpIHsKICAgICAgdXBkYXRlUGxhY2Vob2xkZXIoY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIGdldERlZmF1bHRIZWxwVGV4dChjb3VudHJ5Q29kZSkgewogICAgICB2YXIgbW9ja1BsYWNlaG9sZGVycyA9IFsKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ1VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgVVMgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnR0InLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDQgMDAwMCAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBHQiBjb3VudHJ5IGNvZGUgKzQ0IGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0EnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMSAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBDQSBjb3VudHJ5IGNvZGUgKzEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys2MSAwMDAgMDAwIDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIEFVIGNvdW50cnkgY29kZSArNjEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdERScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0OSAwMDAgMDAwMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBERS1Mw6RuZGVydm9yd2FobCArNDkgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRlInLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzMgMCAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEZSICszMyBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRVMnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzQgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdXlhIGVsIGPDs2RpZ28gZGUgcGHDrXMgRVMgKzM0IGFudGVzIGRlbCBuw7ptZXJvIGRlIHRlbMOpZm9ubycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ05MJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMxIDAgMDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdWb2VnIGRlIE5MLWxhbmRjb2RlICszMSB0b2UgdsOzw7NyIGhldCB0ZWxlZm9vbm51bW1lcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0JFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMyIDAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEJFICszMiBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0gnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDEgMDAgMDAwIDAwIDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIENILUzDpG5kZXJ2b3J3YWhsICs0MSBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0MyAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgQVQtTMOkbmRlcnZvcndhaGwgKzQzIGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM1MyAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIElFIGNvdW50cnkgY29kZSArMzUzIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnSVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzkgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZXJlIGlsIHByZWZpc3NvIGludGVybmF6aW9uYWxlIElUICszOSBwcmltYSBkZWwgbnVtZXJvIGRpIHRlbGVmb25vJywKICAgICAgICB9LAogICAgICBdOwogICAgICAKICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCB0eXBlb2YgY291bnRyeUNvZGUgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgcmV0dXJuIG1vY2tQbGFjZWhvbGRlcnNbMF0uaGVscFRleHQ7CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHNlbGVjdGVkSGVscFRleHQgPSBtb2NrUGxhY2Vob2xkZXJzLmZpbmQoZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGU7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuIHNlbGVjdGVkSGVscFRleHQgPyBzZWxlY3RlZEhlbHBUZXh0LmhlbHBUZXh0IDogbW9ja1BsYWNlaG9sZGVyc1swXS5oZWxwVGV4dDsKICAgIH0KCiAgICBmdW5jdGlvbiBzZXREZWZhdWx0SGVscFRleHQoY291bnRyeUNvZGUpIHsKICAgICAgY29uc3QgaGVscFRleHRTcGFuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hlbHAtdGV4dCcpOwogICAgICBpZiAoIWhlbHBUZXh0U3BhbikgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVIZWxwVGV4dENvdW50cnlDb2RlKGNvdW50cnlDb2RlLCBmaWVsZE5hbWUpIHsKICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCAhZmllbGROYW1lKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICBzZXREZWZhdWx0SGVscFRleHQoY291bnRyeUNvZGUpOwogICAgfQoKICAgIGZ1bmN0aW9uIGluaXRpYWxpemVTbXNQaG9uZURyb3Bkb3duKGZpZWxkTmFtZSkgewogICAgICBpZiAoIWZpZWxkTmFtZSB8fCB0eXBlb2YgZmllbGROYW1lICE9PSAnc3RyaW5nJykgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgZHJvcGRvd24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY291bnRyeS1zZWxlY3QtJyArIGZpZWxkTmFtZSk7CiAgICAgIGNvbnN0IGRpc3BsYXlGbGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ZsYWctZGlzcGxheS0nICsgZmllbGROYW1lKTsKICAgICAgCiAgICAgIGlmICghZHJvcGRvd24gfHwgIWRpc3BsYXlGbGFnKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBzbXNQaG9uZURhdGEgPSB3aW5kb3cuTUM\/LnNtc1Bob25lRGF0YTsKICAgICAgaWYgKHNtc1Bob25lRGF0YSAmJiBzbXNQaG9uZURhdGEucHJvZ3JhbXMgJiYgQXJyYXkuaXNBcnJheShzbXNQaG9uZURhdGEucHJvZ3JhbXMpKSB7CiAgICAgICAgZHJvcGRvd24uaW5uZXJIVE1MID0gZ2VuZXJhdGVEcm9wZG93bk9wdGlvbnMoc21zUGhvbmVEYXRhLnByb2dyYW1zKTsKICAgICAgfQoKICAgICAgY29uc3QgZGVmYXVsdFByb2dyYW0gPSBnZXREZWZhdWx0Q291bnRyeVByb2dyYW0oc21zUGhvbmVEYXRhPy5kZWZhdWx0Q291bnRyeUNvZGUsIHNtc1Bob25lRGF0YT8ucHJvZ3JhbXMpOwogICAgICBpZiAoZGVmYXVsdFByb2dyYW0gJiYgZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUpIHsKICAgICAgICBkcm9wZG93bi52YWx1ZSA9IGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlOwogICAgICAgIAogICAgICAgIGNvbnN0IGZsYWdTcGFuID0gZGlzcGxheUZsYWc\/LnF1ZXJ5U2VsZWN0b3IoJyNmbGFnLWVtb2ppLScgKyBmaWVsZE5hbWUpOwogICAgICAgIGlmIChmbGFnU3BhbikgewogICAgICAgICAgZmxhZ1NwYW4udGV4dENvbnRlbnQgPSBnZXRDb3VudHJ5VW5pY29kZUZsYWcoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUpOwogICAgICAgICAgZmxhZ1NwYW4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc2FuaXRpemVIdG1sKGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlKSArICcgZmxhZycpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB1cGRhdGVTbXNMZWdhbFRleHQoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXIoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgICAgdXBkYXRlQ291bnRyeUNvZGVJbnN0cnVjdGlvbihkZWZhdWx0UHJvZ3JhbS5jb3VudHJ5Q29kZSwgZmllbGROYW1lKTsKICAgICAgfQoKICAgICAKICAgICAgdmFyIHNtc05vdFJlcXVpcmVkUmVtb3ZlQ291bnRyeUNvZGVFbmFibGVkID0gdHJ1ZTsKICAgICAgdmFyIHNtc0ZpZWxkID0gT2JqZWN0LnZhbHVlcyh7IkVNQUlMIjp7Im5hbWUiOiJFTUFJTCIsImxhYmVsIjoiRW1haWwgQWRkcmVzcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImVtYWlsIiwicmVxdWlyZWQiOnRydWUsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJFbWFpbCBBZGRyZXNzIiwibWVyZ2VfaWQiOjAsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjAsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJGTkFNRSI6eyJuYW1lIjoiRk5BTUUiLCJsYWJlbCI6IkZpcnN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRmlyc3QgTmFtZSIsIm1lcmdlX2lkIjoxLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoxLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiTE5BTUUiOnsibmFtZSI6IkxOQU1FIiwibGFiZWwiOiJMYXN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiTGFzdCBOYW1lIiwibWVyZ2VfaWQiOjIsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjIsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJpbnRlcmVzdHNfMTgwMTQ4Ijp7Im5hbWUiOiJpbnRlcmVzdHNfMTgwMTQ4IiwibGFiZWwiOiJXaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImNoZWNrYm94IiwicmVxdWlyZWQiOmZhbHNlLCJjaG9pY2VzIjpbeyJ2YWx1ZSI6IjEiLCJsYWJlbCI6Ik1ldGFTeW50aCAoV2luZG93cyBBcHApIn0seyJ2YWx1ZSI6IjIiLCJsYWJlbCI6IkltYWdlIFNlcXVlbmNlciAoVlNUIHBsdWctaW4pIn0seyJ2YWx1ZSI6IjQiLCJsYWJlbCI6Ilh4IFtNSURJIGZvciBNZXRhU3ludGhdIChXaW5kb3dzIEFwcCkifV0sImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJXaW5kb3dzIEdyb3VwIiwiZ3JvdXBfaWQiOjE4MDE0OCwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MywiZmllbGRfdHlwZSI6Imdyb3VwIn0sIkFERFJFU1MiOnsibmFtZSI6IkFERFJFU1MiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjMsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6MTY0fSwiUEhPTkUiOnsibmFtZSI6IlBIT05FIiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0IjoiIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NH0sIk1NRVJHRTgiOnsibmFtZSI6Ik1NRVJHRTgiLCJsYWJlbCI6IlByb2QgSUQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBJRCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjh9LCJNTUVSR0U5Ijp7Im5hbWUiOiJNTUVSR0U5IiwibGFiZWwiOiJQcm9kIERlc2NyaXAiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBEZXNjcmlwIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6OX0sIk1NRVJHRTEwIjp7Im5hbWUiOiJNTUVSR0UxMCIsImxhYmVsIjoiVmVyc2lvbiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJWZXJzaW9uIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTB9LCJNTUVSR0UxMSI6eyJuYW1lIjoiTU1FUkdFMTEiLCJsYWJlbCI6IkN1c3RvbWVyIE5vdGVzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkN1c3RvbWVyIE5vdGVzIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTF9LCJNTUVSR0U1Ijp7Im5hbWUiOiJNTUVSR0U1IiwibGFiZWwiOiJVbnRpdGxlZCIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6Im51bWJlciIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlVudGl0bGVkIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NX0sIk1NRVJHRTYiOnsibmFtZSI6Ik1NRVJHRTYiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjYsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6IjE2NCJ9LCJNTUVSR0U3Ijp7Im5hbWUiOiJNTUVSR0U3IiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0Ijoibm9uZSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjd9LCJNTUVSR0UxMiI6eyJuYW1lIjoiTU1FUkdFMTIiLCJsYWJlbCI6IkRhdGUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJkYXRlIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRGF0ZSIsImRhdGVmb3JtYXQiOiJNTS9ERC9ZWVlZIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTJ9fSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLm5hbWUgPT09IGZpZWxkTmFtZSAmJiBmLnR5cGUgPT09ICdzbXNwaG9uZSc7IH0pOwogICAgICB2YXIgaXNSZXF1aXJlZCA9IHNtc0ZpZWxkID8gc21zRmllbGQucmVxdWlyZWQgOiBmYWxzZTsKICAgICAgdmFyIHNob3VsZEFwcGVuZENvdW50cnlDb2RlID0gc21zTm90UmVxdWlyZWRSZW1vdmVDb3VudHJ5Q29kZUVuYWJsZWQgPyBpc1JlcXVpcmVkIDogdHJ1ZTsKICAgICAgCiAgICAgIHZhciBwaG9uZUlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21jZS0nICsgZmllbGROYW1lKTsKICAgICAgaWYgKHBob25lSW5wdXQgJiYgZGVmYXVsdFByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlICYmIHNob3VsZEFwcGVuZENvdW50cnlDb2RlKSB7CiAgICAgICAgcGhvbmVJbnB1dC52YWx1ZSA9IGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDYWxsaW5nQ29kZTsKICAgICAgfQogICAgICAKCgogICAgICBkaXNwbGF5RmxhZz8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZHJvcGRvd24uZm9jdXMoKTsKICAgICAgfSk7CgoKICAgICAgZHJvcGRvd24\/LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IHRoaXMudmFsdWU7CiAgICAgICAgCiAgICAgICAgaWYgKCFzZWxlY3RlZENvdW50cnkgfHwgdHlwZW9mIHNlbGVjdGVkQ291bnRyeSAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgY29uc3QgZmxhZ1NwYW4gPSBkaXNwbGF5RmxhZz8ucXVlcnlTZWxlY3RvcignI2ZsYWctZW1vamktJyArIGZpZWxkTmFtZSk7CiAgICAgICAgaWYgKGZsYWdTcGFuKSB7CiAgICAgICAgICBmbGFnU3Bhbi50ZXh0Q29udGVudCA9IGdldENvdW50cnlVbmljb2RlRmxhZyhzZWxlY3RlZENvdW50cnkpOwogICAgICAgICAgZmxhZ1NwYW4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc2FuaXRpemVIdG1sKHNlbGVjdGVkQ291bnRyeSkgKyAnIGZsYWcnKTsKICAgICAgICB9CgogICAgICAgICAKICAgICAgICBjb25zdCBzZWxlY3RlZFByb2dyYW0gPSB3aW5kb3cuTUM\/LnNtc1Bob25lRGF0YT8ucHJvZ3JhbXMuZmluZChmdW5jdGlvbihwcm9ncmFtKSB7CiAgICAgICAgICByZXR1cm4gcHJvZ3JhbSAmJiBwcm9ncmFtLmNvdW50cnlDb2RlID09PSBzZWxlY3RlZENvdW50cnk7CiAgICAgICAgfSk7CgogICAgICAgIHZhciBzbXNOb3RSZXF1aXJlZFJlbW92ZUNvdW50cnlDb2RlRW5hYmxlZCA9IHRydWU7CiAgICAgICAgdmFyIHNtc0ZpZWxkID0gT2JqZWN0LnZhbHVlcyh7IkVNQUlMIjp7Im5hbWUiOiJFTUFJTCIsImxhYmVsIjoiRW1haWwgQWRkcmVzcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImVtYWlsIiwicmVxdWlyZWQiOnRydWUsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJFbWFpbCBBZGRyZXNzIiwibWVyZ2VfaWQiOjAsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjAsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJGTkFNRSI6eyJuYW1lIjoiRk5BTUUiLCJsYWJlbCI6IkZpcnN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRmlyc3QgTmFtZSIsIm1lcmdlX2lkIjoxLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoxLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiTE5BTUUiOnsibmFtZSI6IkxOQU1FIiwibGFiZWwiOiJMYXN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiTGFzdCBOYW1lIiwibWVyZ2VfaWQiOjIsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjIsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJpbnRlcmVzdHNfMTgwMTQ4Ijp7Im5hbWUiOiJpbnRlcmVzdHNfMTgwMTQ4IiwibGFiZWwiOiJXaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImNoZWNrYm94IiwicmVxdWlyZWQiOmZhbHNlLCJjaG9pY2VzIjpbeyJ2YWx1ZSI6IjEiLCJsYWJlbCI6Ik1ldGFTeW50aCAoV2luZG93cyBBcHApIn0seyJ2YWx1ZSI6IjIiLCJsYWJlbCI6IkltYWdlIFNlcXVlbmNlciAoVlNUIHBsdWctaW4pIn0seyJ2YWx1ZSI6IjQiLCJsYWJlbCI6Ilh4IFtNSURJIGZvciBNZXRhU3ludGhdIChXaW5kb3dzIEFwcCkifV0sImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJXaW5kb3dzIEdyb3VwIiwiZ3JvdXBfaWQiOjE4MDE0OCwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MywiZmllbGRfdHlwZSI6Imdyb3VwIn0sIkFERFJFU1MiOnsibmFtZSI6IkFERFJFU1MiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjMsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6MTY0fSwiUEhPTkUiOnsibmFtZSI6IlBIT05FIiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0IjoiIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NH0sIk1NRVJHRTgiOnsibmFtZSI6Ik1NRVJHRTgiLCJsYWJlbCI6IlByb2QgSUQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBJRCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjh9LCJNTUVSR0U5Ijp7Im5hbWUiOiJNTUVSR0U5IiwibGFiZWwiOiJQcm9kIERlc2NyaXAiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBEZXNjcmlwIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6OX0sIk1NRVJHRTEwIjp7Im5hbWUiOiJNTUVSR0UxMCIsImxhYmVsIjoiVmVyc2lvbiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJWZXJzaW9uIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTB9LCJNTUVSR0UxMSI6eyJuYW1lIjoiTU1FUkdFMTEiLCJsYWJlbCI6IkN1c3RvbWVyIE5vdGVzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkN1c3RvbWVyIE5vdGVzIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTF9LCJNTUVSR0U1Ijp7Im5hbWUiOiJNTUVSR0U1IiwibGFiZWwiOiJVbnRpdGxlZCIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6Im51bWJlciIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlVudGl0bGVkIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NX0sIk1NRVJHRTYiOnsibmFtZSI6Ik1NRVJHRTYiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjYsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6IjE2NCJ9LCJNTUVSR0U3Ijp7Im5hbWUiOiJNTUVSR0U3IiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0Ijoibm9uZSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjd9LCJNTUVSR0UxMiI6eyJuYW1lIjoiTU1FUkdFMTIiLCJsYWJlbCI6IkRhdGUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJkYXRlIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRGF0ZSIsImRhdGVmb3JtYXQiOiJNTS9ERC9ZWVlZIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTJ9fSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLm5hbWUgPT09IGZpZWxkTmFtZSAmJiBmLnR5cGUgPT09ICdzbXNwaG9uZSc7IH0pOwogICAgICAgIHZhciBpc1JlcXVpcmVkID0gc21zRmllbGQgPyBzbXNGaWVsZC5yZXF1aXJlZCA6IGZhbHNlOwogICAgICAgIHZhciBzaG91bGRBcHBlbmRDb3VudHJ5Q29kZSA9IHNtc05vdFJlcXVpcmVkUmVtb3ZlQ291bnRyeUNvZGVFbmFibGVkID8gaXNSZXF1aXJlZCA6IHRydWU7CiAgICAgICAgCiAgICAgICAgdmFyIHBob25lSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWNlLScgKyBmaWVsZE5hbWUpOwogICAgICAgIGlmIChwaG9uZUlucHV0ICYmIHNlbGVjdGVkUHJvZ3JhbS5jb3VudHJ5Q2FsbGluZ0NvZGUgJiYgc2hvdWxkQXBwZW5kQ291bnRyeUNvZGUpIHsKICAgICAgICAgIHBob25lSW5wdXQudmFsdWUgPSBzZWxlY3RlZFByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICB1cGRhdGVTbXNMZWdhbFRleHQoc2VsZWN0ZWRDb3VudHJ5LCBmaWVsZE5hbWUpOwogICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyKHNlbGVjdGVkQ291bnRyeSwgZmllbGROYW1lKTsKICAgICAgICB1cGRhdGVDb3VudHJ5Q29kZUluc3RydWN0aW9uKHNlbGVjdGVkQ291bnRyeSwgZmllbGROYW1lKTsKICAgICAgfSk7CiAgICB9CgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgICBjb25zdCBzbXNQaG9uZUZpZWxkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF49ImNvdW50cnktc2VsZWN0LSJdJyk7CiAgICAgIAogICAgICBzbXNQaG9uZUZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGRyb3Bkb3duKSB7CiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZHJvcGRvd24\/LmlkLnJlcGxhY2UoJ2NvdW50cnktc2VsZWN0LScsICcnKTsKICAgICAgICBpbml0aWFsaXplU21zUGhvbmVEcm9wZG93bihmaWVsZE5hbWUpOwogICAgICB9KTsKICAgIH0pOwogICAgPC9zY3JpcHQ+PC9kaXY+CjwhLS0gL3dwOmh0bWwgLS0+Cgo8IS0tIHdwOmltYWdlIHsiaWQiOjQyMSwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdWlzb2Z0d2FyZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMDUvU2NyZWVuLVNob3QtMjAyMC0wNS0yNi1hdC0xMi4wNi41Ni1QTS0xMDI0eDUwLnBuZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS00MjEiLz48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJhbmNob3IiOiJoLXN1cHBvcnQtdGllcnMifSAtLT4KPGgyIGlkPSJoLXN1cHBvcnQtdGllcnMiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5TdXBwb3J0IFRpZXJzPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5XZSBhcmUgd29ya2luZyB0byBkZWZpbmUgdGhlc2UgZm9yIHRoZSBwcm9qZWN0IGFuZCBwaWNrIGEgcGxhdGZvcm0uIEN1cnJlbnRseSBleHBsb3JpbmcgdGhlc2Ugb3B0aW9ucy4gSWYgeW91IGhhdmUgb3RoZXIgaWRlYXMsIHBsZWFzZSBlbWFpbCB1cyBhdCBzdXBwb3J0QHVpc29mdHdhcmUuY29tPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgeyJvcmRlcmVkIjp0cnVlfSAtLT4KPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1ldGFTeW50aCBQbHVnaW4gb25seTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+TWV0YVN5bnRoIGFwcCBvbmx5PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5QbHVnaW4rQXBwPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BZGQgMToxIFRyYWluaW5nIFNlc3Npb25zPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BZGQgTmV3IEJvb2s8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkFkZCBULVNoaXJ0PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BZGQgVklQIGFjY2VzcyB0byBkZXZlbG9wbWVudCBqb3VybmV5PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FYXJseSBhY2Nlc3MgdG8gc29mdHdhcmUgYnVpbGRzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOmltYWdlIHsiaWQiOjQyMSwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdWlzb2Z0d2FyZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMDUvU2NyZWVuLVNob3QtMjAyMC0wNS0yNi1hdC0xMi4wNi41Ni1QTS0xMDI0eDUwLnBuZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS00MjEiLz48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkNsaWNrIGhlcmU6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LnN1cnZleW1vbmtleS5jb20vci9ZSEtGS1laIj5odHRwczovL3d3dy5zdXJ2ZXltb25rZXkuY29tL3IvWUhLRktZWjwvYT48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT5kb2N1bWVudGV4Y2VycHRkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50dGVtcGxhdGVkb2N1bWVudG1ldGFfY29ibG9ja3NfYXR0cl9jb2Jsb2Nrc19kaW1lbnNpb25zX2NvYmxvY2tzX3Jlc3BvbnNpdmVfaGVpZ2h0X2NvYmxvY2tzX2FjY29yZGlvbl9pZV9zdXBwb3J0Zm9vdG5vdGVzZG9jdW1lbnRibG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk1ldGFTeW50aCBpcyBjb21pbmcgdG8gV2luZG93c+KAlGFuZCB5b3UgaG9sZCB0aGUga2V5Ljwvc3Ryb25nPmxldmVsYW5jaG9yVHJwQ29udGVudFJlc3RyaWN0aW9uZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFdl4oCZdmUgY29tcGxldGVkIGNvZGUgcmV2aWV3IGFuZCBsaW5lZCB1cCBvdXIgbGVhZCBkZXZlbG9wZXIuIE5vdywgd2UganVzdCBuZWVkIHlvdS4gV2XigJlyZSBicmluZ2luZyB0aGUgZnVsbCA8c3Ryb25nPk1ldGFTeW50aDwvc3Ryb25nPiBleHBlcmllbmNlIGFuZCBhIGRlZGljYXRlZCBWU1QgcGx1Z2luIG9mIG91ciBsZWdlbmRhcnkmbmJzcDs8c3Ryb25nPkltYWdlIFN5bnRoPC9zdHJvbmc+Jm5ic3A7c2VxdWVuY2VyIHRvIHRoZSBQQy5kcm9wQ2FwVHJwQ29udGVudFJlc3RyaWN0aW9uZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgaXMgYSAiZ28vbm8tZ28iIG1vbWVudC4gSm9pbiB0aGUgbGlzdCB0byBjYXN0IHlvdXIgdm90ZSwgdHJhY2sgb3VyIHByb2dyZXNzLCBhbmQgaGVscCB1cyBncmVlbi1saWdodCB0aGUgbW9zdCB1bmlxdWUgc291bmQtZGVzaWduIHRvb2wgZXZlciBidWlsdCBmb3IgV2luZG93cy4gSWYgeW91IHdhbnQgdG8gc2VlIE1ldGFTeW50aCBvbiBQQywgc2lnbiB1cCBiZWxvdyB0byBtYWtlIGl0IGEgcmVhbGl0eS4gTGV04oCZcyBidWlsZCB0aGlzIWRyb3BDYXBUcnBDb250ZW50UmVzdHJpY3Rpb25mb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25pZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uVHJwQ29udGVudFJlc3RyaWN0aW9ubm9Cb3R0b21NYXJnaW5ub1RvcE1hcmdpbmZpbHRlcmFtcExpZ2h0Ym94aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdXBwb3J0IFRpZXJzbGV2ZWxhbmNob3JUcnBDb250ZW50UmVzdHJpY3Rpb25mb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2UgYXJlIHdvcmtpbmcgdG8gZGVmaW5lIHRoZXNlIGZvciB0aGUgcHJvamVjdCBhbmQgcGljayBhIHBsYXRmb3JtLiBDdXJyZW50bHkgZXhwbG9yaW5nIHRoZXNlIG9wdGlvbnMuIElmIHlvdSBoYXZlIG90aGVyIGlkZWFzLCBwbGVhc2UgZW1haWwgdXMgYXQgc3VwcG9ydEB1aXNvZnR3YXJlLmNvbWRyb3BDYXBUcnBDb250ZW50UmVzdHJpY3Rpb25mb250V2VpZ2h0dGV4dFRyYW5zZm9ybW5vQm90dG9tU3BhY2luZ25vVG9wU3BhY2luZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzVHJwQ29udGVudFJlc3RyaWN0aW9uZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE1ldGFTeW50aCBQbHVnaW4gb25seVRycENvbnRlbnRSZXN0cmljdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TWV0YVN5bnRoIGFwcCBvbmx5VHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQbHVnaW4rQXBwVHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBZGQgMToxIFRyYWluaW5nIFNlc3Npb25zVHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBZGQgTmV3IEJvb2tUcnBDb250ZW50UmVzdHJpY3Rpb25pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEFkZCBULVNoaXJ0VHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBZGQgVklQIGFjY2VzcyB0byBkZXZlbG9wbWVudCBqb3VybmV5VHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRFYXJseSBhY2Nlc3MgdG8gc29mdHdhcmUgYnVpbGRzVHJwQ29udGVudFJlc3RyaWN0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25pZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uVHJwQ29udGVudFJlc3RyaWN0aW9ubm9Cb3R0b21NYXJnaW5ub1RvcE1hcmdpbmZpbHRlcmFtcExpZ2h0Ym94aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUYWtlIHRoZSBNZXRhU3ludGggV2luZG93cyBTdXJ2ZXlsZXZlbGFuY2hvclRycENvbnRlbnRSZXN0cmljdGlvbmZvbnRXZWlnaHR0ZXh0VHJhbnNmb3Jtbm9Cb3R0b21TcGFjaW5nbm9Ub3BTcGFjaW5naW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDbGljayBoZXJlOiA8YSBocmVmPSJodHRwczovL3d3dy5zdXJ2ZXltb25rZXkuY29tL3IvWUhLRktZWiI+aHR0cHM6Ly93d3cuc3VydmV5bW9ua2V5LmNvbS9yL1lIS0ZLWVo8L2E+ZHJvcENhcFRycENvbnRlbnRSZXN0cmljdGlvbmZvbnRXZWlnaHR0ZXh0VHJhbnNmb3Jtbm9Cb3R0b21TcGFjaW5nbm9Ub3BTcGFjaW5naW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVHJwQ29udGVudFJlc3RyaWN0aW9uZm9udFdlaWdodHRleHRUcmFuc2Zvcm1ub0JvdHRvbVNwYWNpbmdub1RvcFNwYWNpbmdpbm5lckJsb2Nrc3N0YXRlc2F2ZWRBdHN0YXRlc2F2ZWRCecKgwqBDdGV4dFBhbmVsSGlkZUNvbG9ydGV4dFBhbmVsU2hvd1NwYWNpbmdDb250cm9sc3RleHRQYW5lbEhlYWRpbmdGb250U2l6ZXNyb3NzIFBsYXRmb3JtPHA+V2XigJl2ZSBjb21wbGV0ZWQgY29kZSByZXZpZXcgYW5kIGxpbmVkIHVwIG91ciBsZWFkIGRldmVsb3Blci4gTm93LCB3ZSBqdXN0IG5lZWQgeW91LiBXZeKAmXJlIGJyaW5naW5nIHRoZSBmdWxsIDxzdHJvbmc+TWV0YVN5bnRoPC9zdHJvbmc+IGV4cGVyaWVuY2UgYW5kIGEgZGVkaWNhdGVkIFZTVCBwbHVnaW4gb2Ygb3VyIGxlZ2VuZGFyecKgPHN0cm9uZz5JbWFnZSBTeW50aDwvc3Ryb25nPsKgc2VxdWVuY2VyIHRvIHRoZSBQQy48L3A+CjwhLS0gd3A6aGVhZGluZyB7ImFuY2hvciI6ImgtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXBsYXRmb3JtLXN1cnZleSJ9IC0tPgo8aDIgaWQ9ImgtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXBsYXRmb3JtLXN1cnZleSIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlRha2UgdGhlIE1ldGFTeW50aCBDcm9zcyBQbGF0Zm9ybSBTdXJ2ZXk8L2gyPgpzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVkb2N1bWVudGNvbnRlbnRkb2N1bWVudGV4Y2VycHRkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50dGVtcGxhdGVkb2N1bWVudG1ldGFkb2N1bWVudGJsb2NrcwUHCAQIBAgGCAUMCAemBLfBBacDCAcIBggOCA4IC0gBBA4UGx4JCAYIBw8ECgeFAQUGFQoNDwwLCAcPBAoHvQIGHAMBAxMHFQoNDwwLCAcPBAoHvQMHFQoNDwwLCAcPBAoHFQsIBw8ECkMABwIIDxUOCwZLAAgHDwQKBw0FBhUKDQ8MCwgHDwQKB6kCBxUKDQ8MCwgHDwQKBwYVCg0PDAsIBw8ECgdVAAsIBw8ECgcSFQsIBw8ECgcKFQsIBw8ECgcZFQsIBw8ECgcMFQsIBw8ECgcLFQsIBw8ECgclFQsIBw8ECgcfFQsIBw8ECkMABwIIDxUOCwZLAAgHDwQKBxNHAAUGFQoNDwwLCAcPBAoHpwEHFQoNDwwLCAcPBApHABUKDQ8MCwUHBQdBARIcGUECAkEFtwOHAwUHCAQIBAgGCAUIBwgHCAYIDggOCAtIAQQIBhYBBAAAAQAAAAEGAAQBAADyAQEBAAIBUkIBAQBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgAUQQKBBLICQccBDAG30AVBBQUBlBQCyQIAfQF3EzIwMjYtMDUtMDZUMTI6MDE6MzF3DHdpbmRvd3MtYXBwc3cHcHVibGlzaH2Eu5SPAX2QMHcGY2xvc2VkdwZjbG9zZWR3AHcAdwB3AHcAdwB3JGNiM2Q1YzMwLWRkYjMtNDU1OC04ODBlLTAzODllNzNmZWQ1NXh3pAE8aDIgaWQ9ImgtbWV0YXN5bnRoLWlzLWNvbWluZy10by13aW5kb3dzLWFuZC15b3UtaG9sZC10aGUta2V5IiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5NZXRhU3ludGggaXMgY29taW5nIHRvIFdpbmRvd3PigJRhbmQgeW91IGhvbGQgdGhlIGtleS48L3N0cm9uZz48L2gyPncMY29yZS9oZWFkaW5nfQJ3NWgtbWV0YXN5bnRoLWlzLWNvbWluZy10by13aW5kb3dzLWFuZC15b3UtaG9sZC10aGUta2V5dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHcAdwB5eXckZmFjMzZiNTEtMjY2Zi00ZjYwLWJhMmYtNDQxNjcwYzYxNTkyeHeEAjxwPldl4oCZdmUgY29tcGxldGVkIGNvZGUgcmV2aWV3IGFuZCBsaW5lZCB1cCBvdXIgbGVhZCBkZXZlbG9wZXIuIE5vdywgd2UganVzdCBuZWVkIHlvdS4gV2XigJlyZSBicmluZ2luZyB0aGUgZnVsbCA8c3Ryb25nPk1ldGFTeW50aDwvc3Ryb25nPiBleHBlcmllbmNlIGFuZCBhIGRlZGljYXRlZCBWU1QgcGx1Z2luIG9mIG91ciBsZWdlbmRhcnkmbmJzcDs8c3Ryb25nPkltYWdlIFN5bnRoPC9zdHJvbmc+Jm5ic3A7c2VxdWVuY2VyIHRvIHRoZSBQQy48L3A+dw5jb3JlL3BhcmFncmFwaHl2AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dwB3AHl5dyQ5NzIzMWY5OS1jZTJmLTRmNTgtODAyMS0wM2NlZjgxZDM2ZWJ4d4YCPHA+VGhpcyBpcyBhICJnby9uby1nbyIgbW9tZW50LiBKb2luIHRoZSBsaXN0IHRvIGNhc3QgeW91ciB2b3RlLCB0cmFjayBvdXIgcHJvZ3Jlc3MsIGFuZCBoZWxwIHVzIGdyZWVuLWxpZ2h0IHRoZSBtb3N0IHVuaXF1ZSBzb3VuZC1kZXNpZ24gdG9vbCBldmVyIGJ1aWx0IGZvciBXaW5kb3dzLiBJZiB5b3Ugd2FudCB0byBzZWUgTWV0YVN5bnRoIG9uIFBDLCBzaWduIHVwIGJlbG93IHRvIG1ha2UgaXQgYSByZWFsaXR5LiBMZXTigJlzIGJ1aWxkIHRoaXMhPC9wPncOY29yZS9wYXJhZ3JhcGh5dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHcAdwB5eXckMTdhZjI1OTgtZDI3YS00Yzg4LTk0MGQtZDlmZGM1MzU0YmYyeHfO0QI8ZGl2IGlkPSJtY19lbWJlZF9zaGVsbCI+CiAgICAgIDxsaW5rIGhyZWY9Ii8vY2RuLWltYWdlcy5tYWlsY2hpbXAuY29tL2VtYmVkY29kZS9jbGFzc2ljLTA2MTUyMy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgI21jX2VtYmVkX3NpZ251cHtiYWNrZ3JvdW5kOiNmZmY7IGZhbHNlO2NsZWFyOmxlZnQ7IGZvbnQ6MTRweCBIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsgd2lkdGg6IDYwMHB4O30KICAgICAgICAvKiBBZGQgeW91ciBvd24gTWFpbGNoaW1wIGZvcm0gc3R5bGUgb3ZlcnJpZGVzIGluIHlvdXIgc2l0ZSBzdHlsZXNoZWV0IG9yIGluIHRoaXMgc3R5bGUgYmxvY2suCiAgICAgICAgICAgV2UgcmVjb21tZW5kIG1vdmluZyB0aGlzIGJsb2NrIGFuZCB0aGUgcHJlY2VkaW5nIENTUyBsaW5rIHRvIHRoZSBIRUFEIG9mIHlvdXIgSFRNTCBmaWxlLiAqLwo8L3N0eWxlPgo8ZGl2IGlkPSJtY19lbWJlZF9zaWdudXAiPgogICAgPGZvcm0gYWN0aW9uPSJodHRwczovL3Vpc29mdHdhcmUudXMxOS5saXN0LW1hbmFnZS5jb20vc3Vic2NyaWJlL3Bvc3Q\/dT1mOGVjMTk4ZTIwNzRmNDZhNTg2YTkwZmJiJmFtcDtpZD0yNTVmZjRjZGFjJmFtcDtmX2lkPTAwNGZhYWU2ZjAiIG1ldGhvZD0icG9zdCIgaWQ9Im1jLWVtYmVkZGVkLXN1YnNjcmliZS1mb3JtIiBuYW1lPSJtYy1lbWJlZGRlZC1zdWJzY3JpYmUtZm9ybSIgY2xhc3M9InZhbGlkYXRlIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGRpdiBpZD0ibWNfZW1iZWRfc2lnbnVwX3Njcm9sbCI+PGgyPkpvaW4gV2luZG93cyBBcHBzIFdhaXRsaXN0PC9oMj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdGVzLXJlcXVpcmVkIj48c3BhbiBjbGFzcz0iYXN0ZXJpc2siPio8L3NwYW4+IGluZGljYXRlcyByZXF1aXJlZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCI+PGxhYmVsIGZvcj0ibWNlLUVNQUlMIj5FbWFpbCBBZGRyZXNzIDxzcGFuIGNsYXNzPSJhc3RlcmlzayI+Kjwvc3Bhbj48L2xhYmVsPjxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iRU1BSUwiIGNsYXNzPSJyZXF1aXJlZCBlbWFpbCIgaWQ9Im1jZS1FTUFJTCIgcmVxdWlyZWQ9IiIgdmFsdWU9IiI+PC9kaXY+PGRpdiBjbGFzcz0ibWMtZmllbGQtZ3JvdXAiPjxsYWJlbCBmb3I9Im1jZS1GTkFNRSI+Rmlyc3QgTmFtZSA8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJGTkFNRSIgY2xhc3M9IiB0ZXh0IiBpZD0ibWNlLUZOQU1FIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCI+PGxhYmVsIGZvcj0ibWNlLUxOQU1FIj5MYXN0IE5hbWUgPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTE5BTUUiIGNsYXNzPSIgdGV4dCIgaWQ9Im1jZS1MTkFNRSIgdmFsdWU9IiI+PC9kaXY+PGRpdiBjbGFzcz0ibWMtZmllbGQtZ3JvdXAgaW5wdXQtZ3JvdXAiPjxzdHJvbmc+V2luZG93cyBBcHBzIG9mIEludGVyZXN0IChzZWxlY3QgYWxsIHdoaWNoIGFwcGx5KTogPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4qIE1ha2Ugc3VyZSB0byBzZWxlY3QgYXBwcyBvZiBpbnRlcmVzdCBzbyB3ZSBrbm93IHlvdSBhcmUgcmVhbCBhbmQgd2hpY2ggYXBwIHRvIGZvY3VzIG9uLjwvc3Bhbj4gPC9zdHJvbmc+PHVsPjxsaT48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Imdyb3VwWzE4MDE0OF1bMV0iIGlkPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMCIgdmFsdWU9IiI+PGxhYmVsIGZvcj0ibWNlLWdyb3VwWzE4MDE0OF0tMTgwMTQ4LTAiPk1ldGFTeW50aCAoV2luZG93cyBBcHApPC9sYWJlbD48L2xpPjxsaT48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Imdyb3VwWzE4MDE0OF1bMl0iIGlkPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMSIgdmFsdWU9IiI+PGxhYmVsIGZvcj0ibWNlLWdyb3VwWzE4MDE0OF0tMTgwMTQ4LTEiPkltYWdlIFNlcXVlbmNlciAoVlNUIHBsdWctaW4pPC9sYWJlbD48L2xpPjxsaT48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Imdyb3VwWzE4MDE0OF1bNF0iIGlkPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMiIgdmFsdWU9IiI+PGxhYmVsIGZvcj0ibWNlLWdyb3VwWzE4MDE0OF0tMTgwMTQ4LTIiPlh4IFtNSURJIGZvciBNZXRhU3ludGhdIChXaW5kb3dzIEFwcCk8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBoaWRkZW49IiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFncyIgdmFsdWU9IjI0MjkzMzM4Ij48L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJtY2UtcmVzcG9uc2VzIiBjbGFzcz0iY2xlYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXNwb25zZSIgaWQ9Im1jZS1lcnJvci1yZXNwb25zZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzcG9uc2UiIGlkPSJtY2Utc3VjY2Vzcy1yZXNwb25zZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4KICAgICAgICA8L2Rpdj48ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtNTAwMHB4OyI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJfZjhlYzE5OGUyMDc0ZjQ2YTU4NmE5MGZiYl8yNTVmZjRjZGFjIiB0YWJpbmRleD0iLTEiIHZhbHVlPSIiPjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyIj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJzY3JpYmUiIGlkPSJtYy1lbWJlZGRlZC1zdWJzY3JpYmUiIGNsYXNzPSJidXR0b24iIHZhbHVlPSJTdWJzY3JpYmUiPjwvZGl2PgogICAgPC9kaXY+CjwvZm9ybT4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii8vczMuYW1hem9uYXdzLmNvbS9kb3dubG9hZHMubWFpbGNoaW1wLmNvbS9qcy9tYy12YWxpZGF0ZS5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbigkKSB7d2luZG93LmZuYW1lcyA9IG5ldyBBcnJheSgpOyB3aW5kb3cuZnR5cGVzID0gbmV3IEFycmF5KCk7Zm5hbWVzWzBdPSdFTUFJTCc7ZnR5cGVzWzBdPSdlbWFpbCc7Zm5hbWVzWzFdPSdGTkFNRSc7ZnR5cGVzWzFdPSd0ZXh0JztmbmFtZXNbMl09J0xOQU1FJztmdHlwZXNbMl09J3RleHQnO2ZuYW1lc1szXT0nQUREUkVTUyc7ZnR5cGVzWzNdPSdhZGRyZXNzJztmbmFtZXNbNF09J1BIT05FJztmdHlwZXNbNF09J3Bob25lJztmbmFtZXNbOF09J01NRVJHRTgnO2Z0eXBlc1s4XT0ndGV4dCc7Zm5hbWVzWzldPSdNTUVSR0U5JztmdHlwZXNbOV09J3RleHQnO2ZuYW1lc1sxMF09J01NRVJHRTEwJztmdHlwZXNbMTBdPSd0ZXh0JztmbmFtZXNbMTFdPSdNTUVSR0UxMSc7ZnR5cGVzWzExXT0ndGV4dCc7Zm5hbWVzWzVdPSdNTUVSR0U1JztmdHlwZXNbNV09J251bWJlcic7Zm5hbWVzWzZdPSdNTUVSR0U2JztmdHlwZXNbNl09J2FkZHJlc3MnO2ZuYW1lc1s3XT0nTU1FUkdFNyc7ZnR5cGVzWzddPSdwaG9uZSc7Zm5hbWVzWzEyXT0nTU1FUkdFMTInO2Z0eXBlc1sxMl09J2RhdGUnO30oalF1ZXJ5KSk7dmFyICRtY2ogPSBqUXVlcnkubm9Db25mbGljdCh0cnVlKTsKICAgIC8vIFNNUyBQaG9uZSBNdWx0aS1Db3VudHJ5IEZ1bmN0aW9uYWxpdHkKICAgIGlmKCF3aW5kb3cuTUMpIHsKICAgICAgd2luZG93Lk1DID0ge307CiAgICB9CiAgICB3aW5kb3cuTUMuc21zUGhvbmVEYXRhID0gewogICAgICBkZWZhdWx0Q291bnRyeUNvZGU6ICdVUycsCiAgICAgIHByb2dyYW1zOiBbXSwKICAgICAgc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXM6IFtdCiAgICB9OwoKICAgIGZ1bmN0aW9uIGdldENvdW50cnlVbmljb2RlRmxhZyhjb3VudHJ5Q29kZSkgewogICAgICAgcmV0dXJuIGNvdW50cnlDb2RlLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgvLi9nLCAoY2hhcikgPT4gU3RyaW5nLmZyb21Db2RlUG9pbnQoY2hhci5jaGFyQ29kZUF0KDApICsgMTI3Mzk3KSkKICAgIH07CgogICAgLy8gSFRNTCBzYW5pdGl6YXRpb24gZnVuY3Rpb24gdG8gcHJldmVudCBYU1MKICAgIGZ1bmN0aW9uIHNhbml0aXplSHRtbChzdHIpIHsKICAgICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSByZXR1cm4gJyc7CiAgICAgIHJldHVybiBzdHIKICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKQogICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JykKICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpCiAgICAgICAgLnJlcGxhY2UoLyIvZywgJyZxdW90OycpCiAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjeDI3OycpCiAgICAgICAgLnJlcGxhY2UoL1wvL2csICcmI3gyRjsnKTsKICAgIH0KCiAgICAvLyBVUkwgc2FuaXRpemF0aW9uIGZ1bmN0aW9uIHRvIHByZXZlbnQgamF2YXNjcmlwdDogYW5kIGRhdGE6IFVSTHMKICAgIGZ1bmN0aW9uIHNhbml0aXplVXJsKHVybCkgewogICAgICBpZiAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHJldHVybiAnJzsKICAgICAgY29uc3QgdHJpbW1lZFVybCA9IHVybC50cmltKCkudG9Mb3dlckNhc2UoKTsKICAgICAgaWYgKHRyaW1tZWRVcmwuc3RhcnRzV2l0aCgnamF2YXNjcmlwdDonKSB8fCB0cmltbWVkVXJsLnN0YXJ0c1dpdGgoJ2RhdGE6JykgfHwgdHJpbW1lZFVybC5zdGFydHNXaXRoKCd2YnNjcmlwdDonKSkgewogICAgICAgIHJldHVybiAnIyc7CiAgICAgIH0KICAgICAgcmV0dXJuIHVybDsKICAgIH0KCiAgICBjb25zdCBnZXRCcm93c2VyTGFuZ3VhZ2UgPSAoKSA9PiB7CiAgICAgIGlmICghd2luZG93Py5uYXZpZ2F0b3I\/Lmxhbmd1YWdlPy5zcGxpdCgnLScpWzFdKSB7CiAgICAgICAgcmV0dXJuIHdpbmRvdz8ubmF2aWdhdG9yPy5sYW5ndWFnZT8udG9VcHBlckNhc2UoKTsKICAgICAgfQogICAgICByZXR1cm4gd2luZG93Py5uYXZpZ2F0b3I\/Lmxhbmd1YWdlPy5zcGxpdCgnLScpWzFdOwogICAgfTsKCiAgICAKICAgIGZ1bmN0aW9uIGdldERlZmF1bHRDb3VudHJ5UHJvZ3JhbShkZWZhdWx0Q291bnRyeUNvZGUsIHNtc1Byb2dyYW1EYXRhKSB7CiAgICAgIGlmICghc21zUHJvZ3JhbURhdGEgfHwgc21zUHJvZ3JhbURhdGEubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGNvbnN0IGJyb3dzZXJMYW5ndWFnZSA9IGdldEJyb3dzZXJMYW5ndWFnZSgpOwoKICAgICAgaWYgKGJyb3dzZXJMYW5ndWFnZSkgewogICAgICAgIGNvbnN0IGZvdW5kUHJvZ3JhbSA9IHNtc1Byb2dyYW1EYXRhLmZpbmQoCiAgICAgICAgICAocHJvZ3JhbSkgPT4gcHJvZ3JhbT8uY291bnRyeUNvZGUgPT09IGJyb3dzZXJMYW5ndWFnZSwKICAgICAgICApOwogICAgICAgIGlmIChmb3VuZFByb2dyYW0pIHsKICAgICAgICAgIHJldHVybiBmb3VuZFByb2dyYW07CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAoZGVmYXVsdENvdW50cnlDb2RlKSB7CiAgICAgICAgY29uc3QgZm91bmRQcm9ncmFtID0gc21zUHJvZ3JhbURhdGEuZmluZCgKICAgICAgICAgIChwcm9ncmFtKSA9PiBwcm9ncmFtPy5jb3VudHJ5Q29kZSA9PT0gZGVmYXVsdENvdW50cnlDb2RlLAogICAgICAgICk7CiAgICAgICAgaWYgKGZvdW5kUHJvZ3JhbSkgewogICAgICAgICAgcmV0dXJuIGZvdW5kUHJvZ3JhbTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHJldHVybiBzbXNQcm9ncmFtRGF0YVswXTsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVTbXNMZWdhbFRleHQoY291bnRyeUNvZGUsIGZpZWxkTmFtZSkgewogICAgICBpZiAoIWNvdW50cnlDb2RlIHx8ICFmaWVsZE5hbWUpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHByb2dyYW1zID0gd2luZG93Py5NQz8uc21zUGhvbmVEYXRhPy5wcm9ncmFtczsKICAgICAgaWYgKCFwcm9ncmFtcyB8fCAhQXJyYXkuaXNBcnJheShwcm9ncmFtcykpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHByb2dyYW0gPSBwcm9ncmFtcy5maW5kKHByb2dyYW0gPT4gcHJvZ3JhbT8uY291bnRyeUNvZGUgPT09IGNvdW50cnlDb2RlKTsKICAgICAgaWYgKCFwcm9ncmFtIHx8ICFwcm9ncmFtLnJlcXVpcmVkVGVtcGxhdGUpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIAogICAgICAKICAgICAgdmFyIHNtc0NvbnNlbnRIdG1sUmVuZGVyaW5nRml4RW5hYmxlZCA9IHRydWU7CiAgICAgIAogICAgICBjb25zdCBsZWdhbFRleHRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2xlZ2FsLXRleHQtJyArIGZpZWxkTmFtZSk7CiAgICAgIGlmICghbGVnYWxUZXh0RWxlbWVudCkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgZGl2UmVnZXggPSBuZXcgUmVnRXhwKCc8Lz9bZGl2XVtePl0qPicsICdnaScpOwogICAgICBjb25zdCBibG9ja1dyYXBwZXJSZWdleCA9IG5ldyBSZWdFeHAoJzwvPyg\/OmRpdnxwKVtePl0qPicsICdnaScpOwogICAgICBjb25zdCBmdWxsQW5jaG9yUmVnZXggPSBuZXcgUmVnRXhwKCc8YS4qPzwvYT4nLCAnZycpOwogICAgICBjb25zdCBhbmNob3JSZWdleCA9IG5ldyBSZWdFeHAoJzxhIGhyZWY9IiguKj8pIiB0YXJnZXQ9IiguKj8pIj4oLio\/KTwvYT4nKTsKICAgICAgCiAgICAgIGNvbnN0IHRlbXBsYXRlID0gc21zQ29uc2VudEh0bWxSZW5kZXJpbmdGaXhFbmFibGVkCiAgICAgICAgPyBwcm9ncmFtLnJlcXVpcmVkVGVtcGxhdGUKICAgICAgICAgICAgLnJlcGxhY2UoLzxcL3A+XHMqPHBbXj5dKj4vZ2ksICcgJykKICAgICAgICAgICAgLnJlcGxhY2UoYmxvY2tXcmFwcGVyUmVnZXgsICcnKQogICAgICAgIDogcHJvZ3JhbS5yZXF1aXJlZFRlbXBsYXRlLnJlcGxhY2UoZGl2UmVnZXgsICcnKTsKICAgICAgCiAgICAgIAoKICAgICAgbGVnYWxUZXh0RWxlbWVudC50ZXh0Q29udGVudCA9ICcnOwogICAgICBjb25zdCBwYXJ0cyA9IHRlbXBsYXRlLnNwbGl0KC8oPGEgaHJlZj0iLio\/IiB0YXJnZXQ9Ii4qPyI+Lio\/PFwvYT4pL2cpOwogICAgICBwYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpIHsKICAgICAgICBpZiAoIXBhcnQpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYW5jaG9yTWF0Y2ggPSBwYXJ0Lm1hdGNoKC88YSBocmVmPSIoLio\/KSIgdGFyZ2V0PSIoLio\/KSI+KC4qPyk8XC9hPi8pOwogICAgICAgIGlmIChhbmNob3JNYXRjaCkgewogICAgICAgICAgY29uc3QgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgICBsaW5rRWxlbWVudC5ocmVmID0gc2FuaXRpemVVcmwoYW5jaG9yTWF0Y2hbMV0pOwogICAgICAgICAgbGlua0VsZW1lbnQudGFyZ2V0ID0gc2FuaXRpemVIdG1sKGFuY2hvck1hdGNoWzJdKTsKICAgICAgICAgIGxpbmtFbGVtZW50LnRleHRDb250ZW50ID0gc2FuaXRpemVIdG1sKGFuY2hvck1hdGNoWzNdKTsKICAgICAgICAgIGxlZ2FsVGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGlua0VsZW1lbnQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBsZWdhbFRleHRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHBhcnQpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICAgICAgCiAgICB9CgogICAgZnVuY3Rpb24gZ2VuZXJhdGVEcm9wZG93bk9wdGlvbnMoc21zUHJvZ3JhbURhdGEpIHsKICAgICAgaWYgKCFzbXNQcm9ncmFtRGF0YSB8fCBzbXNQcm9ncmFtRGF0YS5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gJyc7CiAgICAgIH0KCiAgICAgIHZhciBwcm9ncmFtcyA9IGZhbHNlCiAgICAgICAgPyBzbXNQcm9ncmFtRGF0YS5maWx0ZXIoZnVuY3Rpb24ocCwgaSwgYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBhcnIuZmluZEluZGV4KGZ1bmN0aW9uKHEpIHsgcmV0dXJuIHEuY291bnRyeUNvZGUgPT09IHAuY291bnRyeUNvZGU7IH0pID09PSBpOwogICAgICAgICAgfSkKICAgICAgICA6IHNtc1Byb2dyYW1EYXRhOwogICAgICAKICAgICAgcmV0dXJuIHByb2dyYW1zLm1hcChwcm9ncmFtID0+IHsKICAgICAgICBjb25zdCBmbGFnID0gZ2V0Q291bnRyeVVuaWNvZGVGbGFnKHByb2dyYW0uY291bnRyeUNvZGUpOwogICAgICAgIGNvbnN0IGNvdW50cnlOYW1lID0gZ2V0Q291bnRyeU5hbWUocHJvZ3JhbS5jb3VudHJ5Q29kZSk7CiAgICAgICAgY29uc3QgY2FsbGluZ0NvZGUgPSBwcm9ncmFtLmNvdW50cnlDYWxsaW5nQ29kZSB8fCAnJzsKICAgICAgICAvLyBTYW5pdGl6ZSBhbGwgdmFsdWVzIHRvIHByZXZlbnQgWFNTCiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ291bnRyeUNvZGUgPSBzYW5pdGl6ZUh0bWwocHJvZ3JhbS5jb3VudHJ5Q29kZSB8fCAnJyk7CiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ291bnRyeU5hbWUgPSBzYW5pdGl6ZUh0bWwoY291bnRyeU5hbWUgfHwgJycpOwogICAgICAgIGNvbnN0IHNhbml0aXplZENhbGxpbmdDb2RlID0gc2FuaXRpemVIdG1sKGNhbGxpbmdDb2RlIHx8ICcnKTsKICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBzYW5pdGl6ZWRDb3VudHJ5Q29kZSArICciPicgKyBzYW5pdGl6ZWRDb3VudHJ5TmFtZSArICcgJyArIHNhbml0aXplZENhbGxpbmdDb2RlICsgJzwvb3B0aW9uPic7CiAgICAgIH0pLmpvaW4oJycpOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldENvdW50cnlOYW1lKGNvdW50cnlDb2RlKSB7CiAgICAgIGlmICh3aW5kb3cuTUM\/LnNtc1Bob25lRGF0YT8uc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXMgJiYgQXJyYXkuaXNBcnJheSh3aW5kb3cuTUMuc21zUGhvbmVEYXRhLnNtc1Byb2dyYW1EYXRhQ291bnRyeU5hbWVzKSkgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2luZG93Lk1DLnNtc1Bob25lRGF0YS5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaWYgKHdpbmRvdy5NQy5zbXNQaG9uZURhdGEuc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXNbaV0uY29kZSA9PT0gY291bnRyeUNvZGUpIHsKICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5NQy5zbXNQaG9uZURhdGEuc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXNbaV0ubmFtZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGNvdW50cnlDb2RlOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldERlZmF1bHRQbGFjZWhvbGRlcihjb3VudHJ5Q29kZSkgewogICAgICBpZiAoIWNvdW50cnlDb2RlIHx8IHR5cGVvZiBjb3VudHJ5Q29kZSAhPT0gJ3N0cmluZycpIHsKICAgICAgICByZXR1cm4gJysxIDAwMCAwMDAgMDAwMCc7IC8vIERlZmF1bHQgVVMgcGxhY2Vob2xkZXIKICAgICAgfQogICAgICAKICAgICAgICAgICAgdmFyIG1vY2tQbGFjZWhvbGRlcnMgPSBbCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdVUycsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJysxIDAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIFVTIGNvdW50cnkgY29kZSArMSBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0dCJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzQ0IDAwMDAgMDAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgR0IgY291bnRyeSBjb2RlICs0NCBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0NBJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgQ0EgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQVUnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNjEgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBBVSBjb3VudHJ5IGNvZGUgKzYxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnREUnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDkgMDAwIDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgREUtTMOkbmRlcnZvcndhaGwgKzQ5IGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0ZSJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMzIDAgMDAgMDAgMDAgMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWV6IGxlIGNvZGUgcGF5cyBGUiArMzMgYXZhbnQgbGUgbnVtw6lybyBkZSB0w6lsw6lwaG9uZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM0IDAwMCAwMDAgMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHV5YSBlbCBjw7NkaWdvIGRlIHBhw61zIEVTICszNCBhbnRlcyBkZWwgbsO6bWVybyBkZSB0ZWzDqWZvbm8nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdOTCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszMSAwIDAwMDAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnVm9lZyBkZSBOTC1sYW5kY29kZSArMzEgdG9lIHbDs8OzciBoZXQgdGVsZWZvb25udW1tZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdCRScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszMiAwMDAgMDAgMDAgMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWV6IGxlIGNvZGUgcGF5cyBCRSArMzIgYXZhbnQgbGUgbnVtw6lybyBkZSB0w6lsw6lwaG9uZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0NIJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzQxIDAwIDAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBDSC1Mw6RuZGVydm9yd2FobCArNDEgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDMgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIEFULUzDpG5kZXJ2b3J3YWhsICs0MyBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdJRScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszNTMgMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBJRSBjb3VudHJ5IGNvZGUgKzM1MyBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lUJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM5IDAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGVyZSBpbCBwcmVmaXNzbyBpbnRlcm5hemlvbmFsZSBJVCArMzkgcHJpbWEgZGVsIG51bWVybyBkaSB0ZWxlZm9ubycsCiAgICAgICAgfSwKICAgICAgXTsKCiAgICAgIGNvbnN0IHNlbGVjdGVkUGxhY2Vob2xkZXIgPSBtb2NrUGxhY2Vob2xkZXJzLmZpbmQoZnVuY3Rpb24oaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtICYmIGl0ZW0uY291bnRyeUNvZGUgPT09IGNvdW50cnlDb2RlOwogICAgICB9KTsKICAgICAgCiAgICAgIHJldHVybiBzZWxlY3RlZFBsYWNlaG9sZGVyID8gc2VsZWN0ZWRQbGFjZWhvbGRlci5wbGFjZWhvbGRlciA6IG1vY2tQbGFjZWhvbGRlcnNbMF0ucGxhY2Vob2xkZXI7CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlUGxhY2Vob2xkZXIoY291bnRyeUNvZGUsIGZpZWxkTmFtZSkgewogICAgICBpZiAoIWNvdW50cnlDb2RlIHx8ICFmaWVsZE5hbWUpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHBob25lSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWNlLScgKyBmaWVsZE5hbWUpOwogICAgICBpZiAoIXBob25lSW5wdXQpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gZ2V0RGVmYXVsdFBsYWNlaG9sZGVyKGNvdW50cnlDb2RlKTsKICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7CiAgICAgICAgcGhvbmVJbnB1dC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlQ291bnRyeUNvZGVJbnN0cnVjdGlvbihjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyKGNvdW50cnlDb2RlLCBmaWVsZE5hbWUpOwogICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBnZXREZWZhdWx0SGVscFRleHQoY291bnRyeUNvZGUpIHsKICAgICAgdmFyIG1vY2tQbGFjZWhvbGRlcnMgPSBbCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdVUycsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJysxIDAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIFVTIGNvdW50cnkgY29kZSArMSBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0dCJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzQ0IDAwMDAgMDAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgR0IgY291bnRyeSBjb2RlICs0NCBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0NBJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgQ0EgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQVUnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNjEgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBBVSBjb3VudHJ5IGNvZGUgKzYxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnREUnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDkgMDAwIDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgREUtTMOkbmRlcnZvcndhaGwgKzQ5IGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0ZSJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMzIDAgMDAgMDAgMDAgMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWV6IGxlIGNvZGUgcGF5cyBGUiArMzMgYXZhbnQgbGUgbnVtw6lybyBkZSB0w6lsw6lwaG9uZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM0IDAwMCAwMDAgMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHV5YSBlbCBjw7NkaWdvIGRlIHBhw61zIEVTICszNCBhbnRlcyBkZWwgbsO6bWVybyBkZSB0ZWzDqWZvbm8nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdOTCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszMSAwIDAwMDAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnVm9lZyBkZSBOTC1sYW5kY29kZSArMzEgdG9lIHbDs8OzciBoZXQgdGVsZWZvb25udW1tZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdCRScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszMiAwMDAgMDAgMDAgMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWV6IGxlIGNvZGUgcGF5cyBCRSArMzIgYXZhbnQgbGUgbnVtw6lybyBkZSB0w6lsw6lwaG9uZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0NIJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzQxIDAwIDAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBDSC1Mw6RuZGVydm9yd2FobCArNDEgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDMgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIEFULUzDpG5kZXJ2b3J3YWhsICs0MyBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdJRScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJyszNTMgMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBJRSBjb3VudHJ5IGNvZGUgKzM1MyBiZWZvcmUgdGhlIHBob25lIG51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lUJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM5IDAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGVyZSBpbCBwcmVmaXNzbyBpbnRlcm5hemlvbmFsZSBJVCArMzkgcHJpbWEgZGVsIG51bWVybyBkaSB0ZWxlZm9ubycsCiAgICAgICAgfSwKICAgICAgXTsKICAgICAgCiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgdHlwZW9mIGNvdW50cnlDb2RlICE9PSAnc3RyaW5nJykgewogICAgICAgIHJldHVybiBtb2NrUGxhY2Vob2xkZXJzWzBdLmhlbHBUZXh0OwogICAgICB9CiAgICAgIAogICAgICBjb25zdCBzZWxlY3RlZEhlbHBUZXh0ID0gbW9ja1BsYWNlaG9sZGVycy5maW5kKGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtICYmIGl0ZW0uY291bnRyeUNvZGUgPT09IGNvdW50cnlDb2RlOwogICAgICAgIH0pOwogICAgICAgIAogICAgICAgIHJldHVybiBzZWxlY3RlZEhlbHBUZXh0ID8gc2VsZWN0ZWRIZWxwVGV4dC5oZWxwVGV4dCA6IG1vY2tQbGFjZWhvbGRlcnNbMF0uaGVscFRleHQ7CiAgICB9CgogICAgZnVuY3Rpb24gc2V0RGVmYXVsdEhlbHBUZXh0KGNvdW50cnlDb2RlKSB7CiAgICAgIGNvbnN0IGhlbHBUZXh0U3BhbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNoZWxwLXRleHQnKTsKICAgICAgaWYgKCFoZWxwVGV4dFNwYW4pIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgICAgCiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlSGVscFRleHRDb3VudHJ5Q29kZShjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgIWZpZWxkTmFtZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgc2V0RGVmYXVsdEhlbHBUZXh0KGNvdW50cnlDb2RlKTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbml0aWFsaXplU21zUGhvbmVEcm9wZG93bihmaWVsZE5hbWUpIHsKICAgICAgaWYgKCFmaWVsZE5hbWUgfHwgdHlwZW9mIGZpZWxkTmFtZSAhPT0gJ3N0cmluZycpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IGRyb3Bkb3duID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NvdW50cnktc2VsZWN0LScgKyBmaWVsZE5hbWUpOwogICAgICBjb25zdCBkaXNwbGF5RmxhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmbGFnLWRpc3BsYXktJyArIGZpZWxkTmFtZSk7CiAgICAgIAogICAgICBpZiAoIWRyb3Bkb3duIHx8ICFkaXNwbGF5RmxhZykgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgY29uc3Qgc21zUGhvbmVEYXRhID0gd2luZG93Lk1DPy5zbXNQaG9uZURhdGE7CiAgICAgIGlmIChzbXNQaG9uZURhdGEgJiYgc21zUGhvbmVEYXRhLnByb2dyYW1zICYmIEFycmF5LmlzQXJyYXkoc21zUGhvbmVEYXRhLnByb2dyYW1zKSkgewogICAgICAgIGRyb3Bkb3duLmlubmVySFRNTCA9IGdlbmVyYXRlRHJvcGRvd25PcHRpb25zKHNtc1Bob25lRGF0YS5wcm9ncmFtcyk7CiAgICAgIH0KCiAgICAgIGNvbnN0IGRlZmF1bHRQcm9ncmFtID0gZ2V0RGVmYXVsdENvdW50cnlQcm9ncmFtKHNtc1Bob25lRGF0YT8uZGVmYXVsdENvdW50cnlDb2RlLCBzbXNQaG9uZURhdGE\/LnByb2dyYW1zKTsKICAgICAgaWYgKGRlZmF1bHRQcm9ncmFtICYmIGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlKSB7CiAgICAgICAgZHJvcGRvd24udmFsdWUgPSBkZWZhdWx0UHJvZ3JhbS5jb3VudHJ5Q29kZTsKICAgICAgICAKICAgICAgICBjb25zdCBmbGFnU3BhbiA9IGRpc3BsYXlGbGFnPy5xdWVyeVNlbGVjdG9yKCcjZmxhZy1lbW9qaS0nICsgZmllbGROYW1lKTsKICAgICAgICBpZiAoZmxhZ1NwYW4pIHsKICAgICAgICAgIGZsYWdTcGFuLnRleHRDb250ZW50ID0gZ2V0Q291bnRyeVVuaWNvZGVGbGFnKGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlKTsKICAgICAgICAgIGZsYWdTcGFuLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHNhbml0aXplSHRtbChkZWZhdWx0UHJvZ3JhbS5jb3VudHJ5Q29kZSkgKyAnIGZsYWcnKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdXBkYXRlU21zTGVnYWxUZXh0KGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlLCBmaWVsZE5hbWUpOwogICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyKGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlLCBmaWVsZE5hbWUpOwogICAgICAgIHVwZGF0ZUNvdW50cnlDb2RlSW5zdHJ1Y3Rpb24oZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgIH0KCiAgICAgCiAgICAgIHZhciBzbXNOb3RSZXF1aXJlZFJlbW92ZUNvdW50cnlDb2RlRW5hYmxlZCA9IHRydWU7CiAgICAgIHZhciBzbXNGaWVsZCA9IE9iamVjdC52YWx1ZXMoeyJFTUFJTCI6eyJuYW1lIjoiRU1BSUwiLCJsYWJlbCI6IkVtYWlsIEFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJlbWFpbCIsInJlcXVpcmVkIjp0cnVlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRW1haWwgQWRkcmVzcyIsIm1lcmdlX2lkIjowLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjowLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiRk5BTUUiOnsibmFtZSI6IkZOQU1FIiwibGFiZWwiOiJGaXJzdCBOYW1lIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkZpcnN0IE5hbWUiLCJtZXJnZV9pZCI6MSwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MSwiZmllbGRfdHlwZSI6Im1lcmdlIn0sIkxOQU1FIjp7Im5hbWUiOiJMTkFNRSIsImxhYmVsIjoiTGFzdCBOYW1lIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6Ikxhc3QgTmFtZSIsIm1lcmdlX2lkIjoyLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoyLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiaW50ZXJlc3RzXzE4MDE0OCI6eyJuYW1lIjoiaW50ZXJlc3RzXzE4MDE0OCIsImxhYmVsIjoiV2luZG93cyBBcHBzIG9mIEludGVyZXN0IChzZWxlY3QgYWxsIHdoaWNoIGFwcGx5KToiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJjaGVja2JveCIsInJlcXVpcmVkIjpmYWxzZSwiY2hvaWNlcyI6W3sidmFsdWUiOiIxIiwibGFiZWwiOiJNZXRhU3ludGggKFdpbmRvd3MgQXBwKSJ9LHsidmFsdWUiOiIyIiwibGFiZWwiOiJJbWFnZSBTZXF1ZW5jZXIgKFZTVCBwbHVnLWluKSJ9LHsidmFsdWUiOiI0IiwibGFiZWwiOiJYeCBbTUlESSBmb3IgTWV0YVN5bnRoXSAoV2luZG93cyBBcHApIn1dLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiV2luZG93cyBHcm91cCIsImdyb3VwX2lkIjoxODAxNDgsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjMsImZpZWxkX3R5cGUiOiJncm91cCJ9LCJBRERSRVNTIjp7Im5hbWUiOiJBRERSRVNTIiwibGFiZWwiOiJBZGRyZXNzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiYWRkcmVzcyIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkFkZHJlc3MiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjozLCJjb3VudHJpZXMiOnsiMiI6IkFsYmFuaWEiLCIzIjoiQWxnZXJpYSIsIjQiOiJBbmRvcnJhIiwiNSI6IkFuZ29sYSIsIjYiOiJBcmdlbnRpbmEiLCI3IjoiQXJtZW5pYSIsIjgiOiJBdXN0cmFsaWEiLCI5IjoiQXVzdHJpYSIsIjEwIjoiQXplcmJhaWphbiIsIjExIjoiQmFoYW1hcyIsIjEyIjoiQmFocmFpbiIsIjEzIjoiQmFuZ2xhZGVzaCIsIjE0IjoiQmFyYmFkb3MiLCIxNSI6IkJlbGFydXMiLCIxNiI6IkJlbGdpdW0iLCIxNyI6IkJlbGl6ZSIsIjE4IjoiQmVuaW4iLCIxOSI6IkJlcm11ZGEiLCIyMCI6IkJodXRhbiIsIjIxIjoiQm9saXZpYSIsIjIyIjoiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIsIjIzIjoiQm90c3dhbmEiLCIyNCI6IkJyYXppbCIsIjI1IjoiQnVsZ2FyaWEiLCIyNiI6IkJ1cmtpbmEgRmFzbyIsIjI3IjoiQnVydW5kaSIsIjI4IjoiQ2FtYm9kaWEiLCIyOSI6IkNhbWVyb29uIiwiMzAiOiJDYW5hZGEiLCIzMSI6IkNhcGUgVmVyZGUiLCIzMiI6IkNheW1hbiBJc2xhbmRzIiwiMzMiOiJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCIzNCI6IkNoYWQiLCIzNSI6IkNoaWxlIiwiMzYiOiJDaGluYSIsIjM3IjoiQ29sb21iaWEiLCIzOCI6IkNvbmdvIiwiNDAiOiJDcm9hdGlhIiwiNDEiOiJDeXBydXMiLCI0MiI6IkN6ZWNoIFJlcHVibGljIiwiNDMiOiJEZW5tYXJrIiwiNDQiOiJEamlib3V0aSIsIjQ1IjoiRWN1YWRvciIsIjQ2IjoiRWd5cHQiLCI0NyI6IkVsIFNhbHZhZG9yIiwiNDgiOiJFcXVhdG9yaWFsIEd1aW5lYSIsIjQ5IjoiRXJpdHJlYSIsIjUwIjoiRXN0b25pYSIsIjUxIjoiRXRoaW9waWEiLCI1MiI6IkZpamkiLCI1MyI6IkZpbmxhbmQiLCI1NCI6IkZyYW5jZSIsIjU2IjoiR2Fib24iLCI1NyI6IkdhbWJpYSIsIjU4IjoiR2VvcmdpYSIsIjU5IjoiR2VybWFueSIsIjYwIjoiR2hhbmEiLCI2MSI6IkdyZWVjZSIsIjYyIjoiR3VhbSIsIjYzIjoiR3VpbmVhIiwiNjQiOiJHdWluZWEtQmlzc2F1IiwiNjUiOiJHdXlhbmEiLCI2NiI6IkhvbmR1cmFzIiwiNjciOiJIb25nIEtvbmciLCI2OCI6Ikh1bmdhcnkiLCI2OSI6IkljZWxhbmQiLCI3MCI6IkluZGlhIiwiNzEiOiJJbmRvbmVzaWEiLCI3NCI6IklyZWxhbmQiLCI3NSI6IklzcmFlbCIsIjc2IjoiSXRhbHkiLCI3OCI6IkphcGFuIiwiNzkiOiJKb3JkYW4iLCI4MCI6IkthemFraHN0YW4iLCI4MSI6IktlbnlhIiwiODIiOiJLdXdhaXQiLCI4MyI6Ikt5cmd5enN0YW4iLCI4NCI6IkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIiwiODUiOiJMYXR2aWEiLCI4NiI6IkxlYmFub24iLCI4NyI6Ikxlc290aG8iLCI4OCI6IkxpYmVyaWEiLCI5MCI6IkxpZWNodGVuc3RlaW4iLCI5MSI6IkxpdGh1YW5pYSIsIjkyIjoiTHV4ZW1ib3VyZyIsIjkzIjoiTWFjZWRvbmlhIiwiOTQiOiJNYWRhZ2FzY2FyIiwiOTUiOiJNYWxhd2kiLCI5NiI6Ik1hbGF5c2lhIiwiOTciOiJNYWxkaXZlcyIsIjk4IjoiTWFsaSIsIjk5IjoiTWFsdGEiLCIxMDAiOiJNYXVyaXRhbmlhIiwiMTAxIjoiTWV4aWNvIiwiMTAyIjoiTW9sZG92YSIsIjEwMyI6Ik1vbmFjbyIsIjEwNCI6Ik1vbmdvbGlhIiwiMTA1IjoiTW9yb2NjbyIsIjEwNiI6Ik1vemFtYmlxdWUiLCIxMDciOiJOYW1pYmlhIiwiMTA4IjoiTmVwYWwiLCIxMDkiOiJOZXRoZXJsYW5kcyIsIjExMCI6Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiwiMTExIjoiTmV3IFplYWxhbmQiLCIxMTIiOiJOaWNhcmFndWEiLCIxMTMiOiJOaWdlciIsIjExNCI6Ik5pZ2VyaWEiLCIxMTYiOiJOb3J3YXkiLCIxMTciOiJPbWFuIiwiMTE4IjoiUGFraXN0YW4iLCIxMTkiOiJQYW5hbWEiLCIxMjAiOiJQYXJhZ3VheSIsIjEyMSI6IlBlcnUiLCIxMjIiOiJQaGlsaXBwaW5lcyIsIjEyMyI6IlBvbGFuZCIsIjEyNCI6IlBvcnR1Z2FsIiwiMTI2IjoiUWF0YXIiLCIxMjciOiJSZXVuaW9uIiwiMTI4IjoiUm9tYW5pYSIsIjEyOSI6IlJ1c3NpYSIsIjEzMCI6IlJ3YW5kYSIsIjEzMiI6IlNhbW9hIChJbmRlcGVuZGVudCkiLCIxMzMiOiJTYXVkaSBBcmFiaWEiLCIxMzQiOiJTZW5lZ2FsIiwiMTM1IjoiU2V5Y2hlbGxlcyIsIjEzNiI6IlNpZXJyYSBMZW9uZSIsIjEzNyI6IlNpbmdhcG9yZSIsIjEzOCI6IlNsb3Zha2lhIiwiMTM5IjoiU2xvdmVuaWEiLCIxNDAiOiJTb21hbGlhIiwiMTQxIjoiU291dGggQWZyaWNhIiwiMTQyIjoiU291dGggS29yZWEiLCIxNDMiOiJTcGFpbiIsIjE0NCI6IlNyaSBMYW5rYSIsIjE0NiI6IlN1cmluYW1lIiwiMTQ3IjoiU3dhemlsYW5kIiwiMTQ4IjoiU3dlZGVuIiwiMTQ5IjoiU3dpdHplcmxhbmQiLCIxNTIiOiJUYWl3YW4iLCIxNTMiOiJUYW56YW5pYSIsIjE1NCI6IlRoYWlsYW5kIiwiMTU1IjoiVG9nbyIsIjE1NiI6IlR1bmlzaWEiLCIxNTciOiJUdXJraXllIiwiMTU4IjoiVHVya21lbmlzdGFuIiwiMTU5IjoiVWdhbmRhIiwiMTYxIjoiVWtyYWluZSIsIjE2MiI6IlVuaXRlZCBBcmFiIEVtaXJhdGVzIiwiMTYzIjoiVXJ1Z3VheSIsIjE2NCI6IlVTQSIsIjE2NSI6IlV6YmVraXN0YW4iLCIxNjYiOiJWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSIsIjE2NyI6IlZlbmV6dWVsYSIsIjE2OCI6IlZpZXRuYW0iLCIxNjkiOiJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiLCIxNzAiOiJZZW1lbiIsIjE3MyI6IlphbWJpYSIsIjE3NCI6IlppbWJhYndlIiwiMTc1IjoiQW50aWd1YSBBbmQgQmFyYnVkYSIsIjE3NiI6IkFuZ3VpbGxhIiwiMTc4IjoiQW1lcmljYW4gU2Ftb2EiLCIxNzkiOiJBcnViYSIsIjE4MCI6IkJydW5laSBEYXJ1c3NhbGFtIiwiMTgxIjoiQm91dmV0IElzbGFuZCIsIjE4MyI6IkNvb2sgSXNsYW5kcyIsIjE4NSI6IkNocmlzdG1hcyBJc2xhbmQiLCIxODciOiJEb21pbmljYW4gUmVwdWJsaWMiLCIxODgiOiJXZXN0ZXJuIFNhaGFyYSIsIjE4OSI6IkZhbGtsYW5kIElzbGFuZHMiLCIxOTEiOiJGYXJvZSBJc2xhbmRzIiwiMTkyIjoiR3JlbmFkYSIsIjE5MyI6IkZyZW5jaCBHdWlhbmEiLCIxOTQiOiJHaWJyYWx0YXIiLCIxOTUiOiJHcmVlbmxhbmQiLCIxOTYiOiJHdWFkZWxvdXBlIiwiMTk4IjoiR3VhdGVtYWxhIiwiMjAwIjoiSGFpdGkiLCIyMDIiOiJKYW1haWNhIiwiMjAzIjoiS2lyaWJhdGkiLCIyMDQiOiJDb21vcm9zIiwiMjA1IjoiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiwiMjA2IjoiU2FpbnQgTHVjaWEiLCIyMDciOiJNYXJzaGFsbCBJc2xhbmRzIiwiMjA4IjoiTWFjYXUiLCIyMTAiOiJNYXJ0aW5pcXVlIiwiMjEyIjoiTWF1cml0aXVzIiwiMjEzIjoiTmV3IENhbGVkb25pYSIsIjIxNCI6Ik5vcmZvbGsgSXNsYW5kIiwiMjE1IjoiTmF1cnUiLCIyMTciOiJOaXVlIiwiMjE5IjoiUGFwdWEgTmV3IEd1aW5lYSIsIjIyMSI6IlBpdGNhaXJuIiwiMjIyIjoiUGFsYXUiLCIyMjMiOiJTb2xvbW9uIElzbGFuZHMiLCIyMjUiOiJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIElzbGFuZHMiLCIyMjciOiJTYW4gTWFyaW5vIiwiMjMyIjoiVG9uZ2EiLCIyMzMiOiJUaW1vci1MZXN0ZSIsIjIzNCI6IlRyaW5pZGFkIGFuZCBUb2JhZ28iLCIyMzUiOiJUdXZhbHUiLCIyMzciOiJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIsIjIzOCI6IlZpcmdpbiBJc2xhbmRzIChVLlMuKSIsIjIzOSI6IlZhbnVhdHUiLCIyNDEiOiJNYXlvdHRlIiwiMjQyIjoiTXlhbm1hciIsIjI1NSI6IlNhbyBUb21lIGFuZCBQcmluY2lwZSIsIjI1NyI6IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiwiMjYwIjoiVGFqaWtpc3RhbiIsIjI2MiI6IlVuaXRlZCBLaW5nZG9tIiwiMjY4IjoiQ29zdGEgUmljYSIsIjI3MCI6Ikd1ZXJuc2V5IiwiMjcyIjoiTm9ydGggS29yZWEiLCIyNzQiOiJBZmdoYW5pc3RhbiIsIjI3NSI6IkNvdGUgRCdJdm9pcmUiLCIyNzYiOiJDdWJhIiwiMjc3IjoiRnJlbmNoIFBvbHluZXNpYSIsIjI3OCI6IklyYW4iLCIyNzkiOiJJcmFxIiwiMjgxIjoiTGlieWEiLCIyODIiOiJQYWxlc3RpbmUiLCIyODUiOiJTeXJpYSIsIjI4NiI6IkFhbGFuZCBJc2xhbmRzIiwiMjg3IjoiVHVya3MgJiBDYWljb3MgSXNsYW5kcyIsIjI4OCI6IkplcnNleSAgKENoYW5uZWwgSXNsYW5kcykiLCIyODkiOiJEb21pbmljYSIsIjI5MCI6Ik1vbnRlbmVncm8iLCIyOTMiOiJTdWRhbiIsIjI5NCI6Ik1vbnRzZXJyYXQiLCIyOTgiOiJDdXJhY2FvIiwiMzAyIjoiU2ludCBNYWFydGVuIiwiMzExIjoiU291dGggU3VkYW4iLCIzMTUiOiJSZXB1YmxpYyBvZiBLb3Nvdm8iLCIzMTgiOiJDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiLCIzMjMiOiJJc2xlIG9mIE1hbiIsIjMyNCI6IlNhaW50IE1hcnRpbiIsIjMyNSI6IkJvbmFpcmUsIFNhaW50IEV1c3RhdGl1cyBhbmQgU2FiYSIsIjMyNiI6IlNlcmJpYSIsIjMyNyI6IlNhaW50IEJhcnRoZWxlbXkifSwiZGVmYXVsdGNvdW50cnkiOjE2NH0sIlBIT05FIjp7Im5hbWUiOiJQSE9ORSIsImxhYmVsIjoiUGhvbmUgTnVtYmVyIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoicGhvbmUiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJQaG9uZSBOdW1iZXIiLCJwaG9uZWZvcm1hdCI6IiIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjR9LCJNTUVSR0U4Ijp7Im5hbWUiOiJNTUVSR0U4IiwibGFiZWwiOiJQcm9kIElEIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlByb2QgSUQiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo4fSwiTU1FUkdFOSI6eyJuYW1lIjoiTU1FUkdFOSIsImxhYmVsIjoiUHJvZCBEZXNjcmlwIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlByb2QgRGVzY3JpcCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjl9LCJNTUVSR0UxMCI6eyJuYW1lIjoiTU1FUkdFMTAiLCJsYWJlbCI6IlZlcnNpb24iLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiVmVyc2lvbiIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjEwfSwiTU1FUkdFMTEiOnsibmFtZSI6Ik1NRVJHRTExIiwibGFiZWwiOiJDdXN0b21lciBOb3RlcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJDdXN0b21lciBOb3RlcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjExfSwiTU1FUkdFNSI6eyJuYW1lIjoiTU1FUkdFNSIsImxhYmVsIjoiVW50aXRsZWQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJudW1iZXIiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJVbnRpdGxlZCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjV9LCJNTUVSR0U2Ijp7Im5hbWUiOiJNTUVSR0U2IiwibGFiZWwiOiJBZGRyZXNzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiYWRkcmVzcyIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkFkZHJlc3MiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo2LCJjb3VudHJpZXMiOnsiMiI6IkFsYmFuaWEiLCIzIjoiQWxnZXJpYSIsIjQiOiJBbmRvcnJhIiwiNSI6IkFuZ29sYSIsIjYiOiJBcmdlbnRpbmEiLCI3IjoiQXJtZW5pYSIsIjgiOiJBdXN0cmFsaWEiLCI5IjoiQXVzdHJpYSIsIjEwIjoiQXplcmJhaWphbiIsIjExIjoiQmFoYW1hcyIsIjEyIjoiQmFocmFpbiIsIjEzIjoiQmFuZ2xhZGVzaCIsIjE0IjoiQmFyYmFkb3MiLCIxNSI6IkJlbGFydXMiLCIxNiI6IkJlbGdpdW0iLCIxNyI6IkJlbGl6ZSIsIjE4IjoiQmVuaW4iLCIxOSI6IkJlcm11ZGEiLCIyMCI6IkJodXRhbiIsIjIxIjoiQm9saXZpYSIsIjIyIjoiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIsIjIzIjoiQm90c3dhbmEiLCIyNCI6IkJyYXppbCIsIjI1IjoiQnVsZ2FyaWEiLCIyNiI6IkJ1cmtpbmEgRmFzbyIsIjI3IjoiQnVydW5kaSIsIjI4IjoiQ2FtYm9kaWEiLCIyOSI6IkNhbWVyb29uIiwiMzAiOiJDYW5hZGEiLCIzMSI6IkNhcGUgVmVyZGUiLCIzMiI6IkNheW1hbiBJc2xhbmRzIiwiMzMiOiJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCIzNCI6IkNoYWQiLCIzNSI6IkNoaWxlIiwiMzYiOiJDaGluYSIsIjM3IjoiQ29sb21iaWEiLCIzOCI6IkNvbmdvIiwiNDAiOiJDcm9hdGlhIiwiNDEiOiJDeXBydXMiLCI0MiI6IkN6ZWNoIFJlcHVibGljIiwiNDMiOiJEZW5tYXJrIiwiNDQiOiJEamlib3V0aSIsIjQ1IjoiRWN1YWRvciIsIjQ2IjoiRWd5cHQiLCI0NyI6IkVsIFNhbHZhZG9yIiwiNDgiOiJFcXVhdG9yaWFsIEd1aW5lYSIsIjQ5IjoiRXJpdHJlYSIsIjUwIjoiRXN0b25pYSIsIjUxIjoiRXRoaW9waWEiLCI1MiI6IkZpamkiLCI1MyI6IkZpbmxhbmQiLCI1NCI6IkZyYW5jZSIsIjU2IjoiR2Fib24iLCI1NyI6IkdhbWJpYSIsIjU4IjoiR2VvcmdpYSIsIjU5IjoiR2VybWFueSIsIjYwIjoiR2hhbmEiLCI2MSI6IkdyZWVjZSIsIjYyIjoiR3VhbSIsIjYzIjoiR3VpbmVhIiwiNjQiOiJHdWluZWEtQmlzc2F1IiwiNjUiOiJHdXlhbmEiLCI2NiI6IkhvbmR1cmFzIiwiNjciOiJIb25nIEtvbmciLCI2OCI6Ikh1bmdhcnkiLCI2OSI6IkljZWxhbmQiLCI3MCI6IkluZGlhIiwiNzEiOiJJbmRvbmVzaWEiLCI3NCI6IklyZWxhbmQiLCI3NSI6IklzcmFlbCIsIjc2IjoiSXRhbHkiLCI3OCI6IkphcGFuIiwiNzkiOiJKb3JkYW4iLCI4MCI6IkthemFraHN0YW4iLCI4MSI6IktlbnlhIiwiODIiOiJLdXdhaXQiLCI4MyI6Ikt5cmd5enN0YW4iLCI4NCI6IkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIiwiODUiOiJMYXR2aWEiLCI4NiI6IkxlYmFub24iLCI4NyI6Ikxlc290aG8iLCI4OCI6IkxpYmVyaWEiLCI5MCI6IkxpZWNodGVuc3RlaW4iLCI5MSI6IkxpdGh1YW5pYSIsIjkyIjoiTHV4ZW1ib3VyZyIsIjkzIjoiTWFjZWRvbmlhIiwiOTQiOiJNYWRhZ2FzY2FyIiwiOTUiOiJNYWxhd2kiLCI5NiI6Ik1hbGF5c2lhIiwiOTciOiJNYWxkaXZlcyIsIjk4IjoiTWFsaSIsIjk5IjoiTWFsdGEiLCIxMDAiOiJNYXVyaXRhbmlhIiwiMTAxIjoiTWV4aWNvIiwiMTAyIjoiTW9sZG92YSIsIjEwMyI6Ik1vbmFjbyIsIjEwNCI6Ik1vbmdvbGlhIiwiMTA1IjoiTW9yb2NjbyIsIjEwNiI6Ik1vemFtYmlxdWUiLCIxMDciOiJOYW1pYmlhIiwiMTA4IjoiTmVwYWwiLCIxMDkiOiJOZXRoZXJsYW5kcyIsIjExMCI6Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiwiMTExIjoiTmV3IFplYWxhbmQiLCIxMTIiOiJOaWNhcmFndWEiLCIxMTMiOiJOaWdlciIsIjExNCI6Ik5pZ2VyaWEiLCIxMTYiOiJOb3J3YXkiLCIxMTciOiJPbWFuIiwiMTE4IjoiUGFraXN0YW4iLCIxMTkiOiJQYW5hbWEiLCIxMjAiOiJQYXJhZ3VheSIsIjEyMSI6IlBlcnUiLCIxMjIiOiJQaGlsaXBwaW5lcyIsIjEyMyI6IlBvbGFuZCIsIjEyNCI6IlBvcnR1Z2FsIiwiMTI2IjoiUWF0YXIiLCIxMjciOiJSZXVuaW9uIiwiMTI4IjoiUm9tYW5pYSIsIjEyOSI6IlJ1c3NpYSIsIjEzMCI6IlJ3YW5kYSIsIjEzMiI6IlNhbW9hIChJbmRlcGVuZGVudCkiLCIxMzMiOiJTYXVkaSBBcmFiaWEiLCIxMzQiOiJTZW5lZ2FsIiwiMTM1IjoiU2V5Y2hlbGxlcyIsIjEzNiI6IlNpZXJyYSBMZW9uZSIsIjEzNyI6IlNpbmdhcG9yZSIsIjEzOCI6IlNsb3Zha2lhIiwiMTM5IjoiU2xvdmVuaWEiLCIxNDAiOiJTb21hbGlhIiwiMTQxIjoiU291dGggQWZyaWNhIiwiMTQyIjoiU291dGggS29yZWEiLCIxNDMiOiJTcGFpbiIsIjE0NCI6IlNyaSBMYW5rYSIsIjE0NiI6IlN1cmluYW1lIiwiMTQ3IjoiU3dhemlsYW5kIiwiMTQ4IjoiU3dlZGVuIiwiMTQ5IjoiU3dpdHplcmxhbmQiLCIxNTIiOiJUYWl3YW4iLCIxNTMiOiJUYW56YW5pYSIsIjE1NCI6IlRoYWlsYW5kIiwiMTU1IjoiVG9nbyIsIjE1NiI6IlR1bmlzaWEiLCIxNTciOiJUdXJraXllIiwiMTU4IjoiVHVya21lbmlzdGFuIiwiMTU5IjoiVWdhbmRhIiwiMTYxIjoiVWtyYWluZSIsIjE2MiI6IlVuaXRlZCBBcmFiIEVtaXJhdGVzIiwiMTYzIjoiVXJ1Z3VheSIsIjE2NCI6IlVTQSIsIjE2NSI6IlV6YmVraXN0YW4iLCIxNjYiOiJWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSIsIjE2NyI6IlZlbmV6dWVsYSIsIjE2OCI6IlZpZXRuYW0iLCIxNjkiOiJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiLCIxNzAiOiJZZW1lbiIsIjE3MyI6IlphbWJpYSIsIjE3NCI6IlppbWJhYndlIiwiMTc1IjoiQW50aWd1YSBBbmQgQmFyYnVkYSIsIjE3NiI6IkFuZ3VpbGxhIiwiMTc4IjoiQW1lcmljYW4gU2Ftb2EiLCIxNzkiOiJBcnViYSIsIjE4MCI6IkJydW5laSBEYXJ1c3NhbGFtIiwiMTgxIjoiQm91dmV0IElzbGFuZCIsIjE4MyI6IkNvb2sgSXNsYW5kcyIsIjE4NSI6IkNocmlzdG1hcyBJc2xhbmQiLCIxODciOiJEb21pbmljYW4gUmVwdWJsaWMiLCIxODgiOiJXZXN0ZXJuIFNhaGFyYSIsIjE4OSI6IkZhbGtsYW5kIElzbGFuZHMiLCIxOTEiOiJGYXJvZSBJc2xhbmRzIiwiMTkyIjoiR3JlbmFkYSIsIjE5MyI6IkZyZW5jaCBHdWlhbmEiLCIxOTQiOiJHaWJyYWx0YXIiLCIxOTUiOiJHcmVlbmxhbmQiLCIxOTYiOiJHdWFkZWxvdXBlIiwiMTk4IjoiR3VhdGVtYWxhIiwiMjAwIjoiSGFpdGkiLCIyMDIiOiJKYW1haWNhIiwiMjAzIjoiS2lyaWJhdGkiLCIyMDQiOiJDb21vcm9zIiwiMjA1IjoiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiwiMjA2IjoiU2FpbnQgTHVjaWEiLCIyMDciOiJNYXJzaGFsbCBJc2xhbmRzIiwiMjA4IjoiTWFjYXUiLCIyMTAiOiJNYXJ0aW5pcXVlIiwiMjEyIjoiTWF1cml0aXVzIiwiMjEzIjoiTmV3IENhbGVkb25pYSIsIjIxNCI6Ik5vcmZvbGsgSXNsYW5kIiwiMjE1IjoiTmF1cnUiLCIyMTciOiJOaXVlIiwiMjE5IjoiUGFwdWEgTmV3IEd1aW5lYSIsIjIyMSI6IlBpdGNhaXJuIiwiMjIyIjoiUGFsYXUiLCIyMjMiOiJTb2xvbW9uIElzbGFuZHMiLCIyMjUiOiJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIElzbGFuZHMiLCIyMjciOiJTYW4gTWFyaW5vIiwiMjMyIjoiVG9uZ2EiLCIyMzMiOiJUaW1vci1MZXN0ZSIsIjIzNCI6IlRyaW5pZGFkIGFuZCBUb2JhZ28iLCIyMzUiOiJUdXZhbHUiLCIyMzciOiJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIsIjIzOCI6IlZpcmdpbiBJc2xhbmRzIChVLlMuKSIsIjIzOSI6IlZhbnVhdHUiLCIyNDEiOiJNYXlvdHRlIiwiMjQyIjoiTXlhbm1hciIsIjI1NSI6IlNhbyBUb21lIGFuZCBQcmluY2lwZSIsIjI1NyI6IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiwiMjYwIjoiVGFqaWtpc3RhbiIsIjI2MiI6IlVuaXRlZCBLaW5nZG9tIiwiMjY4IjoiQ29zdGEgUmljYSIsIjI3MCI6Ikd1ZXJuc2V5IiwiMjcyIjoiTm9ydGggS29yZWEiLCIyNzQiOiJBZmdoYW5pc3RhbiIsIjI3NSI6IkNvdGUgRCdJdm9pcmUiLCIyNzYiOiJDdWJhIiwiMjc3IjoiRnJlbmNoIFBvbHluZXNpYSIsIjI3OCI6IklyYW4iLCIyNzkiOiJJcmFxIiwiMjgxIjoiTGlieWEiLCIyODIiOiJQYWxlc3RpbmUiLCIyODUiOiJTeXJpYSIsIjI4NiI6IkFhbGFuZCBJc2xhbmRzIiwiMjg3IjoiVHVya3MgJiBDYWljb3MgSXNsYW5kcyIsIjI4OCI6IkplcnNleSAgKENoYW5uZWwgSXNsYW5kcykiLCIyODkiOiJEb21pbmljYSIsIjI5MCI6Ik1vbnRlbmVncm8iLCIyOTMiOiJTdWRhbiIsIjI5NCI6Ik1vbnRzZXJyYXQiLCIyOTgiOiJDdXJhY2FvIiwiMzAyIjoiU2ludCBNYWFydGVuIiwiMzExIjoiU291dGggU3VkYW4iLCIzMTUiOiJSZXB1YmxpYyBvZiBLb3Nvdm8iLCIzMTgiOiJDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiLCIzMjMiOiJJc2xlIG9mIE1hbiIsIjMyNCI6IlNhaW50IE1hcnRpbiIsIjMyNSI6IkJvbmFpcmUsIFNhaW50IEV1c3RhdGl1cyBhbmQgU2FiYSIsIjMyNiI6IlNlcmJpYSIsIjMyNyI6IlNhaW50IEJhcnRoZWxlbXkifSwiZGVmYXVsdGNvdW50cnkiOiIxNjQifSwiTU1FUkdFNyI6eyJuYW1lIjoiTU1FUkdFNyIsImxhYmVsIjoiUGhvbmUgTnVtYmVyIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoicGhvbmUiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJQaG9uZSBOdW1iZXIiLCJwaG9uZWZvcm1hdCI6Im5vbmUiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo3fSwiTU1FUkdFMTIiOnsibmFtZSI6Ik1NRVJHRTEyIiwibGFiZWwiOiJEYXRlIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiZGF0ZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkRhdGUiLCJkYXRlZm9ybWF0IjoiTU0vREQvWVlZWSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjEyfX0pLmZpbmQoZnVuY3Rpb24oZikgeyByZXR1cm4gZi5uYW1lID09PSBmaWVsZE5hbWUgJiYgZi50eXBlID09PSAnc21zcGhvbmUnOyB9KTsKICAgICAgdmFyIGlzUmVxdWlyZWQgPSBzbXNGaWVsZCA\/IHNtc0ZpZWxkLnJlcXVpcmVkIDogZmFsc2U7CiAgICAgIHZhciBzaG91bGRBcHBlbmRDb3VudHJ5Q29kZSA9IHNtc05vdFJlcXVpcmVkUmVtb3ZlQ291bnRyeUNvZGVFbmFibGVkID8gaXNSZXF1aXJlZCA6IHRydWU7CiAgICAgIAogICAgICB2YXIgcGhvbmVJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtY2UtJyArIGZpZWxkTmFtZSk7CiAgICAgIGlmIChwaG9uZUlucHV0ICYmIGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDYWxsaW5nQ29kZSAmJiBzaG91bGRBcHBlbmRDb3VudHJ5Q29kZSkgewogICAgICAgIHBob25lSW5wdXQudmFsdWUgPSBkZWZhdWx0UHJvZ3JhbS5jb3VudHJ5Q2FsbGluZ0NvZGU7CiAgICAgIH0KICAgICAgCgoKICAgICAgZGlzcGxheUZsYWc\/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIGRyb3Bkb3duLmZvY3VzKCk7CiAgICAgIH0pOwoKCiAgICAgIGRyb3Bkb3duPy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICBjb25zdCBzZWxlY3RlZENvdW50cnkgPSB0aGlzLnZhbHVlOwogICAgICAgIAogICAgICAgIGlmICghc2VsZWN0ZWRDb3VudHJ5IHx8IHR5cGVvZiBzZWxlY3RlZENvdW50cnkgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNvbnN0IGZsYWdTcGFuID0gZGlzcGxheUZsYWc\/LnF1ZXJ5U2VsZWN0b3IoJyNmbGFnLWVtb2ppLScgKyBmaWVsZE5hbWUpOwogICAgICAgIGlmIChmbGFnU3BhbikgewogICAgICAgICAgZmxhZ1NwYW4udGV4dENvbnRlbnQgPSBnZXRDb3VudHJ5VW5pY29kZUZsYWcoc2VsZWN0ZWRDb3VudHJ5KTsKICAgICAgICAgIGZsYWdTcGFuLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHNhbml0aXplSHRtbChzZWxlY3RlZENvdW50cnkpICsgJyBmbGFnJyk7CiAgICAgICAgfQoKICAgICAgICAgCiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9ncmFtID0gd2luZG93Lk1DPy5zbXNQaG9uZURhdGE\/LnByb2dyYW1zLmZpbmQoZnVuY3Rpb24ocHJvZ3JhbSkgewogICAgICAgICAgcmV0dXJuIHByb2dyYW0gJiYgcHJvZ3JhbS5jb3VudHJ5Q29kZSA9PT0gc2VsZWN0ZWRDb3VudHJ5OwogICAgICAgIH0pOwoKICAgICAgICB2YXIgc21zTm90UmVxdWlyZWRSZW1vdmVDb3VudHJ5Q29kZUVuYWJsZWQgPSB0cnVlOwogICAgICAgIHZhciBzbXNGaWVsZCA9IE9iamVjdC52YWx1ZXMoeyJFTUFJTCI6eyJuYW1lIjoiRU1BSUwiLCJsYWJlbCI6IkVtYWlsIEFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJlbWFpbCIsInJlcXVpcmVkIjp0cnVlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRW1haWwgQWRkcmVzcyIsIm1lcmdlX2lkIjowLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjowLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiRk5BTUUiOnsibmFtZSI6IkZOQU1FIiwibGFiZWwiOiJGaXJzdCBOYW1lIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkZpcnN0IE5hbWUiLCJtZXJnZV9pZCI6MSwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MSwiZmllbGRfdHlwZSI6Im1lcmdlIn0sIkxOQU1FIjp7Im5hbWUiOiJMTkFNRSIsImxhYmVsIjoiTGFzdCBOYW1lIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6Ikxhc3QgTmFtZSIsIm1lcmdlX2lkIjoyLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoyLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiaW50ZXJlc3RzXzE4MDE0OCI6eyJuYW1lIjoiaW50ZXJlc3RzXzE4MDE0OCIsImxhYmVsIjoiV2luZG93cyBBcHBzIG9mIEludGVyZXN0IChzZWxlY3QgYWxsIHdoaWNoIGFwcGx5KToiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJjaGVja2JveCIsInJlcXVpcmVkIjpmYWxzZSwiY2hvaWNlcyI6W3sidmFsdWUiOiIxIiwibGFiZWwiOiJNZXRhU3ludGggKFdpbmRvd3MgQXBwKSJ9LHsidmFsdWUiOiIyIiwibGFiZWwiOiJJbWFnZSBTZXF1ZW5jZXIgKFZTVCBwbHVnLWluKSJ9LHsidmFsdWUiOiI0IiwibGFiZWwiOiJYeCBbTUlESSBmb3IgTWV0YVN5bnRoXSAoV2luZG93cyBBcHApIn1dLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiV2luZG93cyBHcm91cCIsImdyb3VwX2lkIjoxODAxNDgsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjMsImZpZWxkX3R5cGUiOiJncm91cCJ9LCJBRERSRVNTIjp7Im5hbWUiOiJBRERSRVNTIiwibGFiZWwiOiJBZGRyZXNzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiYWRkcmVzcyIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkFkZHJlc3MiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjozLCJjb3VudHJpZXMiOnsiMiI6IkFsYmFuaWEiLCIzIjoiQWxnZXJpYSIsIjQiOiJBbmRvcnJhIiwiNSI6IkFuZ29sYSIsIjYiOiJBcmdlbnRpbmEiLCI3IjoiQXJtZW5pYSIsIjgiOiJBdXN0cmFsaWEiLCI5IjoiQXVzdHJpYSIsIjEwIjoiQXplcmJhaWphbiIsIjExIjoiQmFoYW1hcyIsIjEyIjoiQmFocmFpbiIsIjEzIjoiQmFuZ2xhZGVzaCIsIjE0IjoiQmFyYmFkb3MiLCIxNSI6IkJlbGFydXMiLCIxNiI6IkJlbGdpdW0iLCIxNyI6IkJlbGl6ZSIsIjE4IjoiQmVuaW4iLCIxOSI6IkJlcm11ZGEiLCIyMCI6IkJodXRhbiIsIjIxIjoiQm9saXZpYSIsIjIyIjoiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIsIjIzIjoiQm90c3dhbmEiLCIyNCI6IkJyYXppbCIsIjI1IjoiQnVsZ2FyaWEiLCIyNiI6IkJ1cmtpbmEgRmFzbyIsIjI3IjoiQnVydW5kaSIsIjI4IjoiQ2FtYm9kaWEiLCIyOSI6IkNhbWVyb29uIiwiMzAiOiJDYW5hZGEiLCIzMSI6IkNhcGUgVmVyZGUiLCIzMiI6IkNheW1hbiBJc2xhbmRzIiwiMzMiOiJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCIzNCI6IkNoYWQiLCIzNSI6IkNoaWxlIiwiMzYiOiJDaGluYSIsIjM3IjoiQ29sb21iaWEiLCIzOCI6IkNvbmdvIiwiNDAiOiJDcm9hdGlhIiwiNDEiOiJDeXBydXMiLCI0MiI6IkN6ZWNoIFJlcHVibGljIiwiNDMiOiJEZW5tYXJrIiwiNDQiOiJEamlib3V0aSIsIjQ1IjoiRWN1YWRvciIsIjQ2IjoiRWd5cHQiLCI0NyI6IkVsIFNhbHZhZG9yIiwiNDgiOiJFcXVhdG9yaWFsIEd1aW5lYSIsIjQ5IjoiRXJpdHJlYSIsIjUwIjoiRXN0b25pYSIsIjUxIjoiRXRoaW9waWEiLCI1MiI6IkZpamkiLCI1MyI6IkZpbmxhbmQiLCI1NCI6IkZyYW5jZSIsIjU2IjoiR2Fib24iLCI1NyI6IkdhbWJpYSIsIjU4IjoiR2VvcmdpYSIsIjU5IjoiR2VybWFueSIsIjYwIjoiR2hhbmEiLCI2MSI6IkdyZWVjZSIsIjYyIjoiR3VhbSIsIjYzIjoiR3VpbmVhIiwiNjQiOiJHdWluZWEtQmlzc2F1IiwiNjUiOiJHdXlhbmEiLCI2NiI6IkhvbmR1cmFzIiwiNjciOiJIb25nIEtvbmciLCI2OCI6Ikh1bmdhcnkiLCI2OSI6IkljZWxhbmQiLCI3MCI6IkluZGlhIiwiNzEiOiJJbmRvbmVzaWEiLCI3NCI6IklyZWxhbmQiLCI3NSI6IklzcmFlbCIsIjc2IjoiSXRhbHkiLCI3OCI6IkphcGFuIiwiNzkiOiJKb3JkYW4iLCI4MCI6IkthemFraHN0YW4iLCI4MSI6IktlbnlhIiwiODIiOiJLdXdhaXQiLCI4MyI6Ikt5cmd5enN0YW4iLCI4NCI6IkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIiwiODUiOiJMYXR2aWEiLCI4NiI6IkxlYmFub24iLCI4NyI6Ikxlc290aG8iLCI4OCI6IkxpYmVyaWEiLCI5MCI6IkxpZWNodGVuc3RlaW4iLCI5MSI6IkxpdGh1YW5pYSIsIjkyIjoiTHV4ZW1ib3VyZyIsIjkzIjoiTWFjZWRvbmlhIiwiOTQiOiJNYWRhZ2FzY2FyIiwiOTUiOiJNYWxhd2kiLCI5NiI6Ik1hbGF5c2lhIiwiOTciOiJNYWxkaXZlcyIsIjk4IjoiTWFsaSIsIjk5IjoiTWFsdGEiLCIxMDAiOiJNYXVyaXRhbmlhIiwiMTAxIjoiTWV4aWNvIiwiMTAyIjoiTW9sZG92YSIsIjEwMyI6Ik1vbmFjbyIsIjEwNCI6Ik1vbmdvbGlhIiwiMTA1IjoiTW9yb2NjbyIsIjEwNiI6Ik1vemFtYmlxdWUiLCIxMDciOiJOYW1pYmlhIiwiMTA4IjoiTmVwYWwiLCIxMDkiOiJOZXRoZXJsYW5kcyIsIjExMCI6Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiwiMTExIjoiTmV3IFplYWxhbmQiLCIxMTIiOiJOaWNhcmFndWEiLCIxMTMiOiJOaWdlciIsIjExNCI6Ik5pZ2VyaWEiLCIxMTYiOiJOb3J3YXkiLCIxMTciOiJPbWFuIiwiMTE4IjoiUGFraXN0YW4iLCIxMTkiOiJQYW5hbWEiLCIxMjAiOiJQYXJhZ3VheSIsIjEyMSI6IlBlcnUiLCIxMjIiOiJQaGlsaXBwaW5lcyIsIjEyMyI6IlBvbGFuZCIsIjEyNCI6IlBvcnR1Z2FsIiwiMTI2IjoiUWF0YXIiLCIxMjciOiJSZXVuaW9uIiwiMTI4IjoiUm9tYW5pYSIsIjEyOSI6IlJ1c3NpYSIsIjEzMCI6IlJ3YW5kYSIsIjEzMiI6IlNhbW9hIChJbmRlcGVuZGVudCkiLCIxMzMiOiJTYXVkaSBBcmFiaWEiLCIxMzQiOiJTZW5lZ2FsIiwiMTM1IjoiU2V5Y2hlbGxlcyIsIjEzNiI6IlNpZXJyYSBMZW9uZSIsIjEzNyI6IlNpbmdhcG9yZSIsIjEzOCI6IlNsb3Zha2lhIiwiMTM5IjoiU2xvdmVuaWEiLCIxNDAiOiJTb21hbGlhIiwiMTQxIjoiU291dGggQWZyaWNhIiwiMTQyIjoiU291dGggS29yZWEiLCIxNDMiOiJTcGFpbiIsIjE0NCI6IlNyaSBMYW5rYSIsIjE0NiI6IlN1cmluYW1lIiwiMTQ3IjoiU3dhemlsYW5kIiwiMTQ4IjoiU3dlZGVuIiwiMTQ5IjoiU3dpdHplcmxhbmQiLCIxNTIiOiJUYWl3YW4iLCIxNTMiOiJUYW56YW5pYSIsIjE1NCI6IlRoYWlsYW5kIiwiMTU1IjoiVG9nbyIsIjE1NiI6IlR1bmlzaWEiLCIxNTciOiJUdXJraXllIiwiMTU4IjoiVHVya21lbmlzdGFuIiwiMTU5IjoiVWdhbmRhIiwiMTYxIjoiVWtyYWluZSIsIjE2MiI6IlVuaXRlZCBBcmFiIEVtaXJhdGVzIiwiMTYzIjoiVXJ1Z3VheSIsIjE2NCI6IlVTQSIsIjE2NSI6IlV6YmVraXN0YW4iLCIxNjYiOiJWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSIsIjE2NyI6IlZlbmV6dWVsYSIsIjE2OCI6IlZpZXRuYW0iLCIxNjkiOiJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiLCIxNzAiOiJZZW1lbiIsIjE3MyI6IlphbWJpYSIsIjE3NCI6IlppbWJhYndlIiwiMTc1IjoiQW50aWd1YSBBbmQgQmFyYnVkYSIsIjE3NiI6IkFuZ3VpbGxhIiwiMTc4IjoiQW1lcmljYW4gU2Ftb2EiLCIxNzkiOiJBcnViYSIsIjE4MCI6IkJydW5laSBEYXJ1c3NhbGFtIiwiMTgxIjoiQm91dmV0IElzbGFuZCIsIjE4MyI6IkNvb2sgSXNsYW5kcyIsIjE4NSI6IkNocmlzdG1hcyBJc2xhbmQiLCIxODciOiJEb21pbmljYW4gUmVwdWJsaWMiLCIxODgiOiJXZXN0ZXJuIFNhaGFyYSIsIjE4OSI6IkZhbGtsYW5kIElzbGFuZHMiLCIxOTEiOiJGYXJvZSBJc2xhbmRzIiwiMTkyIjoiR3JlbmFkYSIsIjE5MyI6IkZyZW5jaCBHdWlhbmEiLCIxOTQiOiJHaWJyYWx0YXIiLCIxOTUiOiJHcmVlbmxhbmQiLCIxOTYiOiJHdWFkZWxvdXBlIiwiMTk4IjoiR3VhdGVtYWxhIiwiMjAwIjoiSGFpdGkiLCIyMDIiOiJKYW1haWNhIiwiMjAzIjoiS2lyaWJhdGkiLCIyMDQiOiJDb21vcm9zIiwiMjA1IjoiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiwiMjA2IjoiU2FpbnQgTHVjaWEiLCIyMDciOiJNYXJzaGFsbCBJc2xhbmRzIiwiMjA4IjoiTWFjYXUiLCIyMTAiOiJNYXJ0aW5pcXVlIiwiMjEyIjoiTWF1cml0aXVzIiwiMjEzIjoiTmV3IENhbGVkb25pYSIsIjIxNCI6Ik5vcmZvbGsgSXNsYW5kIiwiMjE1IjoiTmF1cnUiLCIyMTciOiJOaXVlIiwiMjE5IjoiUGFwdWEgTmV3IEd1aW5lYSIsIjIyMSI6IlBpdGNhaXJuIiwiMjIyIjoiUGFsYXUiLCIyMjMiOiJTb2xvbW9uIElzbGFuZHMiLCIyMjUiOiJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIElzbGFuZHMiLCIyMjciOiJTYW4gTWFyaW5vIiwiMjMyIjoiVG9uZ2EiLCIyMzMiOiJUaW1vci1MZXN0ZSIsIjIzNCI6IlRyaW5pZGFkIGFuZCBUb2JhZ28iLCIyMzUiOiJUdXZhbHUiLCIyMzciOiJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIsIjIzOCI6IlZpcmdpbiBJc2xhbmRzIChVLlMuKSIsIjIzOSI6IlZhbnVhdHUiLCIyNDEiOiJNYXlvdHRlIiwiMjQyIjoiTXlhbm1hciIsIjI1NSI6IlNhbyBUb21lIGFuZCBQcmluY2lwZSIsIjI1NyI6IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiwiMjYwIjoiVGFqaWtpc3RhbiIsIjI2MiI6IlVuaXRlZCBLaW5nZG9tIiwiMjY4IjoiQ29zdGEgUmljYSIsIjI3MCI6Ikd1ZXJuc2V5IiwiMjcyIjoiTm9ydGggS29yZWEiLCIyNzQiOiJBZmdoYW5pc3RhbiIsIjI3NSI6IkNvdGUgRCdJdm9pcmUiLCIyNzYiOiJDdWJhIiwiMjc3IjoiRnJlbmNoIFBvbHluZXNpYSIsIjI3OCI6IklyYW4iLCIyNzkiOiJJcmFxIiwiMjgxIjoiTGlieWEiLCIyODIiOiJQYWxlc3RpbmUiLCIyODUiOiJTeXJpYSIsIjI4NiI6IkFhbGFuZCBJc2xhbmRzIiwiMjg3IjoiVHVya3MgJiBDYWljb3MgSXNsYW5kcyIsIjI4OCI6IkplcnNleSAgKENoYW5uZWwgSXNsYW5kcykiLCIyODkiOiJEb21pbmljYSIsIjI5MCI6Ik1vbnRlbmVncm8iLCIyOTMiOiJTdWRhbiIsIjI5NCI6Ik1vbnRzZXJyYXQiLCIyOTgiOiJDdXJhY2FvIiwiMzAyIjoiU2ludCBNYWFydGVuIiwiMzExIjoiU291dGggU3VkYW4iLCIzMTUiOiJSZXB1YmxpYyBvZiBLb3Nvdm8iLCIzMTgiOiJDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiLCIzMjMiOiJJc2xlIG9mIE1hbiIsIjMyNCI6IlNhaW50IE1hcnRpbiIsIjMyNSI6IkJvbmFpcmUsIFNhaW50IEV1c3RhdGl1cyBhbmQgU2FiYSIsIjMyNiI6IlNlcmJpYSIsIjMyNyI6IlNhaW50IEJhcnRoZWxlbXkifSwiZGVmYXVsdGNvdW50cnkiOjE2NH0sIlBIT05FIjp7Im5hbWUiOiJQSE9ORSIsImxhYmVsIjoiUGhvbmUgTnVtYmVyIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoicGhvbmUiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJQaG9uZSBOdW1iZXIiLCJwaG9uZWZvcm1hdCI6IiIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjR9LCJNTUVSR0U4Ijp7Im5hbWUiOiJNTUVSR0U4IiwibGFiZWwiOiJQcm9kIElEIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlByb2QgSUQiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo4fSwiTU1FUkdFOSI6eyJuYW1lIjoiTU1FUkdFOSIsImxhYmVsIjoiUHJvZCBEZXNjcmlwIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlByb2QgRGVzY3JpcCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjl9LCJNTUVSR0UxMCI6eyJuYW1lIjoiTU1FUkdFMTAiLCJsYWJlbCI6IlZlcnNpb24iLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiVmVyc2lvbiIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjEwfSwiTU1FUkdFMTEiOnsibmFtZSI6Ik1NRVJHRTExIiwibGFiZWwiOiJDdXN0b21lciBOb3RlcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJDdXN0b21lciBOb3RlcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjExfSwiTU1FUkdFNSI6eyJuYW1lIjoiTU1FUkdFNSIsImxhYmVsIjoiVW50aXRsZWQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJudW1iZXIiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJVbnRpdGxlZCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjV9LCJNTUVSR0U2Ijp7Im5hbWUiOiJNTUVSR0U2IiwibGFiZWwiOiJBZGRyZXNzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiYWRkcmVzcyIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkFkZHJlc3MiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo2LCJjb3VudHJpZXMiOnsiMiI6IkFsYmFuaWEiLCIzIjoiQWxnZXJpYSIsIjQiOiJBbmRvcnJhIiwiNSI6IkFuZ29sYSIsIjYiOiJBcmdlbnRpbmEiLCI3IjoiQXJtZW5pYSIsIjgiOiJBdXN0cmFsaWEiLCI5IjoiQXVzdHJpYSIsIjEwIjoiQXplcmJhaWphbiIsIjExIjoiQmFoYW1hcyIsIjEyIjoiQmFocmFpbiIsIjEzIjoiQmFuZ2xhZGVzaCIsIjE0IjoiQmFyYmFkb3MiLCIxNSI6IkJlbGFydXMiLCIxNiI6IkJlbGdpdW0iLCIxNyI6IkJlbGl6ZSIsIjE4IjoiQmVuaW4iLCIxOSI6IkJlcm11ZGEiLCIyMCI6IkJodXRhbiIsIjIxIjoiQm9saXZpYSIsIjIyIjoiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIsIjIzIjoiQm90c3dhbmEiLCIyNCI6IkJyYXppbCIsIjI1IjoiQnVsZ2FyaWEiLCIyNiI6IkJ1cmtpbmEgRmFzbyIsIjI3IjoiQnVydW5kaSIsIjI4IjoiQ2FtYm9kaWEiLCIyOSI6IkNhbWVyb29uIiwiMzAiOiJDYW5hZGEiLCIzMSI6IkNhcGUgVmVyZGUiLCIzMiI6IkNheW1hbiBJc2xhbmRzIiwiMzMiOiJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCIzNCI6IkNoYWQiLCIzNSI6IkNoaWxlIiwiMzYiOiJDaGluYSIsIjM3IjoiQ29sb21iaWEiLCIzOCI6IkNvbmdvIiwiNDAiOiJDcm9hdGlhIiwiNDEiOiJDeXBydXMiLCI0MiI6IkN6ZWNoIFJlcHVibGljIiwiNDMiOiJEZW5tYXJrIiwiNDQiOiJEamlib3V0aSIsIjQ1IjoiRWN1YWRvciIsIjQ2IjoiRWd5cHQiLCI0NyI6IkVsIFNhbHZhZG9yIiwiNDgiOiJFcXVhdG9yaWFsIEd1aW5lYSIsIjQ5IjoiRXJpdHJlYSIsIjUwIjoiRXN0b25pYSIsIjUxIjoiRXRoaW9waWEiLCI1MiI6IkZpamkiLCI1MyI6IkZpbmxhbmQiLCI1NCI6IkZyYW5jZSIsIjU2IjoiR2Fib24iLCI1NyI6IkdhbWJpYSIsIjU4IjoiR2VvcmdpYSIsIjU5IjoiR2VybWFueSIsIjYwIjoiR2hhbmEiLCI2MSI6IkdyZWVjZSIsIjYyIjoiR3VhbSIsIjYzIjoiR3VpbmVhIiwiNjQiOiJHdWluZWEtQmlzc2F1IiwiNjUiOiJHdXlhbmEiLCI2NiI6IkhvbmR1cmFzIiwiNjciOiJIb25nIEtvbmciLCI2OCI6Ikh1bmdhcnkiLCI2OSI6IkljZWxhbmQiLCI3MCI6IkluZGlhIiwiNzEiOiJJbmRvbmVzaWEiLCI3NCI6IklyZWxhbmQiLCI3NSI6IklzcmFlbCIsIjc2IjoiSXRhbHkiLCI3OCI6IkphcGFuIiwiNzkiOiJKb3JkYW4iLCI4MCI6IkthemFraHN0YW4iLCI4MSI6IktlbnlhIiwiODIiOiJLdXdhaXQiLCI4MyI6Ikt5cmd5enN0YW4iLCI4NCI6IkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljIiwiODUiOiJMYXR2aWEiLCI4NiI6IkxlYmFub24iLCI4NyI6Ikxlc290aG8iLCI4OCI6IkxpYmVyaWEiLCI5MCI6IkxpZWNodGVuc3RlaW4iLCI5MSI6IkxpdGh1YW5pYSIsIjkyIjoiTHV4ZW1ib3VyZyIsIjkzIjoiTWFjZWRvbmlhIiwiOTQiOiJNYWRhZ2FzY2FyIiwiOTUiOiJNYWxhd2kiLCI5NiI6Ik1hbGF5c2lhIiwiOTciOiJNYWxkaXZlcyIsIjk4IjoiTWFsaSIsIjk5IjoiTWFsdGEiLCIxMDAiOiJNYXVyaXRhbmlhIiwiMTAxIjoiTWV4aWNvIiwiMTAyIjoiTW9sZG92YSIsIjEwMyI6Ik1vbmFjbyIsIjEwNCI6Ik1vbmdvbGlhIiwiMTA1IjoiTW9yb2NjbyIsIjEwNiI6Ik1vemFtYmlxdWUiLCIxMDciOiJOYW1pYmlhIiwiMTA4IjoiTmVwYWwiLCIxMDkiOiJOZXRoZXJsYW5kcyIsIjExMCI6Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiwiMTExIjoiTmV3IFplYWxhbmQiLCIxMTIiOiJOaWNhcmFndWEiLCIxMTMiOiJOaWdlciIsIjExNCI6Ik5pZ2VyaWEiLCIxMTYiOiJOb3J3YXkiLCIxMTciOiJPbWFuIiwiMTE4IjoiUGFraXN0YW4iLCIxMTkiOiJQYW5hbWEiLCIxMjAiOiJQYXJhZ3VheSIsIjEyMSI6IlBlcnUiLCIxMjIiOiJQaGlsaXBwaW5lcyIsIjEyMyI6IlBvbGFuZCIsIjEyNCI6IlBvcnR1Z2FsIiwiMTI2IjoiUWF0YXIiLCIxMjciOiJSZXVuaW9uIiwiMTI4IjoiUm9tYW5pYSIsIjEyOSI6IlJ1c3NpYSIsIjEzMCI6IlJ3YW5kYSIsIjEzMiI6IlNhbW9hIChJbmRlcGVuZGVudCkiLCIxMzMiOiJTYXVkaSBBcmFiaWEiLCIxMzQiOiJTZW5lZ2FsIiwiMTM1IjoiU2V5Y2hlbGxlcyIsIjEzNiI6IlNpZXJyYSBMZW9uZSIsIjEzNyI6IlNpbmdhcG9yZSIsIjEzOCI6IlNsb3Zha2lhIiwiMTM5IjoiU2xvdmVuaWEiLCIxNDAiOiJTb21hbGlhIiwiMTQxIjoiU291dGggQWZyaWNhIiwiMTQyIjoiU291dGggS29yZWEiLCIxNDMiOiJTcGFpbiIsIjE0NCI6IlNyaSBMYW5rYSIsIjE0NiI6IlN1cmluYW1lIiwiMTQ3IjoiU3dhemlsYW5kIiwiMTQ4IjoiU3dlZGVuIiwiMTQ5IjoiU3dpdHplcmxhbmQiLCIxNTIiOiJUYWl3YW4iLCIxNTMiOiJUYW56YW5pYSIsIjE1NCI6IlRoYWlsYW5kIiwiMTU1IjoiVG9nbyIsIjE1NiI6IlR1bmlzaWEiLCIxNTciOiJUdXJraXllIiwiMTU4IjoiVHVya21lbmlzdGFuIiwiMTU5IjoiVWdhbmRhIiwiMTYxIjoiVWtyYWluZSIsIjE2MiI6IlVuaXRlZCBBcmFiIEVtaXJhdGVzIiwiMTYzIjoiVXJ1Z3VheSIsIjE2NCI6IlVTQSIsIjE2NSI6IlV6YmVraXN0YW4iLCIxNjYiOiJWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSIsIjE2NyI6IlZlbmV6dWVsYSIsIjE2OCI6IlZpZXRuYW0iLCIxNjkiOiJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiLCIxNzAiOiJZZW1lbiIsIjE3MyI6IlphbWJpYSIsIjE3NCI6IlppbWJhYndlIiwiMTc1IjoiQW50aWd1YSBBbmQgQmFyYnVkYSIsIjE3NiI6IkFuZ3VpbGxhIiwiMTc4IjoiQW1lcmljYW4gU2Ftb2EiLCIxNzkiOiJBcnViYSIsIjE4MCI6IkJydW5laSBEYXJ1c3NhbGFtIiwiMTgxIjoiQm91dmV0IElzbGFuZCIsIjE4MyI6IkNvb2sgSXNsYW5kcyIsIjE4NSI6IkNocmlzdG1hcyBJc2xhbmQiLCIxODciOiJEb21pbmljYW4gUmVwdWJsaWMiLCIxODgiOiJXZXN0ZXJuIFNhaGFyYSIsIjE4OSI6IkZhbGtsYW5kIElzbGFuZHMiLCIxOTEiOiJGYXJvZSBJc2xhbmRzIiwiMTkyIjoiR3JlbmFkYSIsIjE5MyI6IkZyZW5jaCBHdWlhbmEiLCIxOTQiOiJHaWJyYWx0YXIiLCIxOTUiOiJHcmVlbmxhbmQiLCIxOTYiOiJHdWFkZWxvdXBlIiwiMTk4IjoiR3VhdGVtYWxhIiwiMjAwIjoiSGFpdGkiLCIyMDIiOiJKYW1haWNhIiwiMjAzIjoiS2lyaWJhdGkiLCIyMDQiOiJDb21vcm9zIiwiMjA1IjoiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiwiMjA2IjoiU2FpbnQgTHVjaWEiLCIyMDciOiJNYXJzaGFsbCBJc2xhbmRzIiwiMjA4IjoiTWFjYXUiLCIyMTAiOiJNYXJ0aW5pcXVlIiwiMjEyIjoiTWF1cml0aXVzIiwiMjEzIjoiTmV3IENhbGVkb25pYSIsIjIxNCI6Ik5vcmZvbGsgSXNsYW5kIiwiMjE1IjoiTmF1cnUiLCIyMTciOiJOaXVlIiwiMjE5IjoiUGFwdWEgTmV3IEd1aW5lYSIsIjIyMSI6IlBpdGNhaXJuIiwiMjIyIjoiUGFsYXUiLCIyMjMiOiJTb2xvbW9uIElzbGFuZHMiLCIyMjUiOiJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIElzbGFuZHMiLCIyMjciOiJTYW4gTWFyaW5vIiwiMjMyIjoiVG9uZ2EiLCIyMzMiOiJUaW1vci1MZXN0ZSIsIjIzNCI6IlRyaW5pZGFkIGFuZCBUb2JhZ28iLCIyMzUiOiJUdXZhbHUiLCIyMzciOiJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIsIjIzOCI6IlZpcmdpbiBJc2xhbmRzIChVLlMuKSIsIjIzOSI6IlZhbnVhdHUiLCIyNDEiOiJNYXlvdHRlIiwiMjQyIjoiTXlhbm1hciIsIjI1NSI6IlNhbyBUb21lIGFuZCBQcmluY2lwZSIsIjI1NyI6IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiwiMjYwIjoiVGFqaWtpc3RhbiIsIjI2MiI6IlVuaXRlZCBLaW5nZG9tIiwiMjY4IjoiQ29zdGEgUmljYSIsIjI3MCI6Ikd1ZXJuc2V5IiwiMjcyIjoiTm9ydGggS29yZWEiLCIyNzQiOiJBZmdoYW5pc3RhbiIsIjI3NSI6IkNvdGUgRCdJdm9pcmUiLCIyNzYiOiJDdWJhIiwiMjc3IjoiRnJlbmNoIFBvbHluZXNpYSIsIjI3OCI6IklyYW4iLCIyNzkiOiJJcmFxIiwiMjgxIjoiTGlieWEiLCIyODIiOiJQYWxlc3RpbmUiLCIyODUiOiJTeXJpYSIsIjI4NiI6IkFhbGFuZCBJc2xhbmRzIiwiMjg3IjoiVHVya3MgJiBDYWljb3MgSXNsYW5kcyIsIjI4OCI6IkplcnNleSAgKENoYW5uZWwgSXNsYW5kcykiLCIyODkiOiJEb21pbmljYSIsIjI5MCI6Ik1vbnRlbmVncm8iLCIyOTMiOiJTdWRhbiIsIjI5NCI6Ik1vbnRzZXJyYXQiLCIyOTgiOiJDdXJhY2FvIiwiMzAyIjoiU2ludCBNYWFydGVuIiwiMzExIjoiU291dGggU3VkYW4iLCIzMTUiOiJSZXB1YmxpYyBvZiBLb3Nvdm8iLCIzMTgiOiJDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiLCIzMjMiOiJJc2xlIG9mIE1hbiIsIjMyNCI6IlNhaW50IE1hcnRpbiIsIjMyNSI6IkJvbmFpcmUsIFNhaW50IEV1c3RhdGl1cyBhbmQgU2FiYSIsIjMyNiI6IlNlcmJpYSIsIjMyNyI6IlNhaW50IEJhcnRoZWxlbXkifSwiZGVmYXVsdGNvdW50cnkiOiIxNjQifSwiTU1FUkdFNyI6eyJuYW1lIjoiTU1FUkdFNyIsImxhYmVsIjoiUGhvbmUgTnVtYmVyIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoicGhvbmUiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJQaG9uZSBOdW1iZXIiLCJwaG9uZWZvcm1hdCI6Im5vbmUiLCJlbmFibGVkIjpmYWxzZSwib3JkZXIiOm51bGwsImZpZWxkX3R5cGUiOiJtZXJnZSIsIm1lcmdlX2lkIjo3fSwiTU1FUkdFMTIiOnsibmFtZSI6Ik1NRVJHRTEyIiwibGFiZWwiOiJEYXRlIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoiZGF0ZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkRhdGUiLCJkYXRlZm9ybWF0IjoiTU0vREQvWVlZWSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjEyfX0pLmZpbmQoZnVuY3Rpb24oZikgeyByZXR1cm4gZi5uYW1lID09PSBmaWVsZE5hbWUgJiYgZi50eXBlID09PSAnc21zcGhvbmUnOyB9KTsKICAgICAgICB2YXIgaXNSZXF1aXJlZCA9IHNtc0ZpZWxkID8gc21zRmllbGQucmVxdWlyZWQgOiBmYWxzZTsKICAgICAgICB2YXIgc2hvdWxkQXBwZW5kQ291bnRyeUNvZGUgPSBzbXNOb3RSZXF1aXJlZFJlbW92ZUNvdW50cnlDb2RlRW5hYmxlZCA\/IGlzUmVxdWlyZWQgOiB0cnVlOwogICAgICAgIAogICAgICAgIHZhciBwaG9uZUlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21jZS0nICsgZmllbGROYW1lKTsKICAgICAgICBpZiAocGhvbmVJbnB1dCAmJiBzZWxlY3RlZFByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlICYmIHNob3VsZEFwcGVuZENvdW50cnlDb2RlKSB7CiAgICAgICAgICBwaG9uZUlucHV0LnZhbHVlID0gc2VsZWN0ZWRQcm9ncmFtLmNvdW50cnlDYWxsaW5nQ29kZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgdXBkYXRlU21zTGVnYWxUZXh0KHNlbGVjdGVkQ291bnRyeSwgZmllbGROYW1lKTsKICAgICAgICB1cGRhdGVQbGFjZWhvbGRlcihzZWxlY3RlZENvdW50cnksIGZpZWxkTmFtZSk7CiAgICAgICAgdXBkYXRlQ291bnRyeUNvZGVJbnN0cnVjdGlvbihzZWxlY3RlZENvdW50cnksIGZpZWxkTmFtZSk7CiAgICAgIH0pOwogICAgfQoKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAgICAgY29uc3Qgc21zUGhvbmVGaWVsZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePSJjb3VudHJ5LXNlbGVjdC0iXScpOwogICAgICAKICAgICAgc21zUGhvbmVGaWVsZHMuZm9yRWFjaChmdW5jdGlvbihkcm9wZG93bikgewogICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGRyb3Bkb3duPy5pZC5yZXBsYWNlKCdjb3VudHJ5LXNlbGVjdC0nLCAnJyk7CiAgICAgICAgaW5pdGlhbGl6ZVNtc1Bob25lRHJvcGRvd24oZmllbGROYW1lKTsKICAgICAgfSk7CiAgICB9KTsKICAgIDwvc2NyaXB0PjwvZGl2PncJY29yZS9odG1sd87RAjxkaXYgaWQ9Im1jX2VtYmVkX3NoZWxsIj4KICAgICAgPGxpbmsgaHJlZj0iLy9jZG4taW1hZ2VzLm1haWxjaGltcC5jb20vZW1iZWRjb2RlL2NsYXNzaWMtMDYxNTIzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgICAjbWNfZW1iZWRfc2lnbnVwe2JhY2tncm91bmQ6I2ZmZjsgZmFsc2U7Y2xlYXI6bGVmdDsgZm9udDoxNHB4IEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyB3aWR0aDogNjAwcHg7fQogICAgICAgIC8qIEFkZCB5b3VyIG93biBNYWlsY2hpbXAgZm9ybSBzdHlsZSBvdmVycmlkZXMgaW4geW91ciBzaXRlIHN0eWxlc2hlZXQgb3IgaW4gdGhpcyBzdHlsZSBibG9jay4KICAgICAgICAgICBXZSByZWNvbW1lbmQgbW92aW5nIHRoaXMgYmxvY2sgYW5kIHRoZSBwcmVjZWRpbmcgQ1NTIGxpbmsgdG8gdGhlIEhFQUQgb2YgeW91ciBIVE1MIGZpbGUuICovCjwvc3R5bGU+CjxkaXYgaWQ9Im1jX2VtYmVkX3NpZ251cCI+CiAgICA8Zm9ybSBhY3Rpb249Imh0dHBzOi8vdWlzb2Z0d2FyZS51czE5Lmxpc3QtbWFuYWdlLmNvbS9zdWJzY3JpYmUvcG9zdD91PWY4ZWMxOThlMjA3NGY0NmE1ODZhOTBmYmImYW1wO2lkPTI1NWZmNGNkYWMmYW1wO2ZfaWQ9MDA0ZmFhZTZmMCIgbWV0aG9kPSJwb3N0IiBpZD0ibWMtZW1iZWRkZWQtc3Vic2NyaWJlLWZvcm0iIG5hbWU9Im1jLWVtYmVkZGVkLXN1YnNjcmliZS1mb3JtIiBjbGFzcz0idmFsaWRhdGUiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICA8ZGl2IGlkPSJtY19lbWJlZF9zaWdudXBfc2Nyb2xsIj48aDI+Sm9pbiBXaW5kb3dzIEFwcHMgV2FpdGxpc3Q8L2gyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0ZXMtcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJhc3RlcmlzayI+Kjwvc3Bhbj4gaW5kaWNhdGVzIHJlcXVpcmVkPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1jLWZpZWxkLWdyb3VwIj48bGFiZWwgZm9yPSJtY2UtRU1BSUwiPkVtYWlsIEFkZHJlc3MgPHNwYW4gY2xhc3M9ImFzdGVyaXNrIj4qPC9zcGFuPjwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSJFTUFJTCIgY2xhc3M9InJlcXVpcmVkIGVtYWlsIiBpZD0ibWNlLUVNQUlMIiByZXF1aXJlZD0iIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCI+PGxhYmVsIGZvcj0ibWNlLUZOQU1FIj5GaXJzdCBOYW1lIDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkZOQU1FIiBjbGFzcz0iIHRleHQiIGlkPSJtY2UtRk5BTUUiIHZhbHVlPSIiPjwvZGl2PjxkaXYgY2xhc3M9Im1jLWZpZWxkLWdyb3VwIj48bGFiZWwgZm9yPSJtY2UtTE5BTUUiPkxhc3QgTmFtZSA8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJMTkFNRSIgY2xhc3M9IiB0ZXh0IiBpZD0ibWNlLUxOQU1FIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGNsYXNzPSJtYy1maWVsZC1ncm91cCBpbnB1dC1ncm91cCI+PHN0cm9uZz5XaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiogTWFrZSBzdXJlIHRvIHNlbGVjdCBhcHBzIG9mIGludGVyZXN0IHNvIHdlIGtub3cgeW91IGFyZSByZWFsIGFuZCB3aGljaCBhcHAgdG8gZm9jdXMgb24uPC9zcGFuPiA8L3N0cm9uZz48dWw+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVsxXSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0wIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMCI+TWV0YVN5bnRoIChXaW5kb3dzIEFwcCk8L2xhYmVsPjwvbGk+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVsyXSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0xIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMSI+SW1hZ2UgU2VxdWVuY2VyIChWU1QgcGx1Zy1pbik8L2xhYmVsPjwvbGk+PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3JvdXBbMTgwMTQ4XVs0XSIgaWQ9Im1jZS1ncm91cFsxODAxNDhdLTE4MDE0OC0yIiB2YWx1ZT0iIj48bGFiZWwgZm9yPSJtY2UtZ3JvdXBbMTgwMTQ4XS0xODAxNDgtMiI+WHggW01JREkgZm9yIE1ldGFTeW50aF0gKFdpbmRvd3MgQXBwKTwvbGFiZWw+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGhpZGRlbj0iIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YWdzIiB2YWx1ZT0iMjQyOTMzMzgiPjwvZGl2PgogICAgICAgIDxkaXYgaWQ9Im1jZS1yZXNwb25zZXMiIGNsYXNzPSJjbGVhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlc3BvbnNlIiBpZD0ibWNlLWVycm9yLXJlc3BvbnNlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXNwb25zZSIgaWQ9Im1jZS1zdWNjZXNzLXJlc3BvbnNlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2PgogICAgICAgIDwvZGl2PjxkaXYgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC01MDAwcHg7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYl9mOGVjMTk4ZTIwNzRmNDZhNTg2YTkwZmJiXzI1NWZmNGNkYWMiIHRhYmluZGV4PSItMSIgdmFsdWU9IiI+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1YnNjcmliZSIgaWQ9Im1jLWVtYmVkZGVkLXN1YnNjcmliZSIgY2xhc3M9ImJ1dHRvbiIgdmFsdWU9IlN1YnNjcmliZSI+PC9kaXY+CiAgICA8L2Rpdj4KPC9mb3JtPgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9zMy5hbWF6b25hd3MuY29tL2Rvd25sb2Fkcy5tYWlsY2hpbXAuY29tL2pzL21jLXZhbGlkYXRlLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KGZ1bmN0aW9uKCQpIHt3aW5kb3cuZm5hbWVzID0gbmV3IEFycmF5KCk7IHdpbmRvdy5mdHlwZXMgPSBuZXcgQXJyYXkoKTtmbmFtZXNbMF09J0VNQUlMJztmdHlwZXNbMF09J2VtYWlsJztmbmFtZXNbMV09J0ZOQU1FJztmdHlwZXNbMV09J3RleHQnO2ZuYW1lc1syXT0nTE5BTUUnO2Z0eXBlc1syXT0ndGV4dCc7Zm5hbWVzWzNdPSdBRERSRVNTJztmdHlwZXNbM109J2FkZHJlc3MnO2ZuYW1lc1s0XT0nUEhPTkUnO2Z0eXBlc1s0XT0ncGhvbmUnO2ZuYW1lc1s4XT0nTU1FUkdFOCc7ZnR5cGVzWzhdPSd0ZXh0JztmbmFtZXNbOV09J01NRVJHRTknO2Z0eXBlc1s5XT0ndGV4dCc7Zm5hbWVzWzEwXT0nTU1FUkdFMTAnO2Z0eXBlc1sxMF09J3RleHQnO2ZuYW1lc1sxMV09J01NRVJHRTExJztmdHlwZXNbMTFdPSd0ZXh0JztmbmFtZXNbNV09J01NRVJHRTUnO2Z0eXBlc1s1XT0nbnVtYmVyJztmbmFtZXNbNl09J01NRVJHRTYnO2Z0eXBlc1s2XT0nYWRkcmVzcyc7Zm5hbWVzWzddPSdNTUVSR0U3JztmdHlwZXNbN109J3Bob25lJztmbmFtZXNbMTJdPSdNTUVSR0UxMic7ZnR5cGVzWzEyXT0nZGF0ZSc7fShqUXVlcnkpKTt2YXIgJG1jaiA9IGpRdWVyeS5ub0NvbmZsaWN0KHRydWUpOwogICAgLy8gU01TIFBob25lIE11bHRpLUNvdW50cnkgRnVuY3Rpb25hbGl0eQogICAgaWYoIXdpbmRvdy5NQykgewogICAgICB3aW5kb3cuTUMgPSB7fTsKICAgIH0KICAgIHdpbmRvdy5NQy5zbXNQaG9uZURhdGEgPSB7CiAgICAgIGRlZmF1bHRDb3VudHJ5Q29kZTogJ1VTJywKICAgICAgcHJvZ3JhbXM6IFtdLAogICAgICBzbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lczogW10KICAgIH07CgogICAgZnVuY3Rpb24gZ2V0Q291bnRyeVVuaWNvZGVGbGFnKGNvdW50cnlDb2RlKSB7CiAgICAgICByZXR1cm4gY291bnRyeUNvZGUudG9VcHBlckNhc2UoKS5yZXBsYWNlKC8uL2csIChjaGFyKSA9PiBTdHJpbmcuZnJvbUNvZGVQb2ludChjaGFyLmNoYXJDb2RlQXQoMCkgKyAxMjczOTcpKQogICAgfTsKCiAgICAvLyBIVE1MIHNhbml0aXphdGlvbiBmdW5jdGlvbiB0byBwcmV2ZW50IFhTUwogICAgZnVuY3Rpb24gc2FuaXRpemVIdG1sKHN0cikgewogICAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHJldHVybiAnJzsKICAgICAgcmV0dXJuIHN0cgogICAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpCiAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JykKICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7JykKICAgICAgICAucmVwbGFjZSgvXC8vZywgJyYjeDJGOycpOwogICAgfQoKICAgIC8vIFVSTCBzYW5pdGl6YXRpb24gZnVuY3Rpb24gdG8gcHJldmVudCBqYXZhc2NyaXB0OiBhbmQgZGF0YTogVVJMcwogICAgZnVuY3Rpb24gc2FuaXRpemVVcmwodXJsKSB7CiAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykgcmV0dXJuICcnOwogICAgICBjb25zdCB0cmltbWVkVXJsID0gdXJsLnRyaW0oKS50b0xvd2VyQ2FzZSgpOwogICAgICBpZiAodHJpbW1lZFVybC5zdGFydHNXaXRoKCdqYXZhc2NyaXB0OicpIHx8IHRyaW1tZWRVcmwuc3RhcnRzV2l0aCgnZGF0YTonKSB8fCB0cmltbWVkVXJsLnN0YXJ0c1dpdGgoJ3Zic2NyaXB0OicpKSB7CiAgICAgICAgcmV0dXJuICcjJzsKICAgICAgfQogICAgICByZXR1cm4gdXJsOwogICAgfQoKICAgIGNvbnN0IGdldEJyb3dzZXJMYW5ndWFnZSA9ICgpID0+IHsKICAgICAgaWYgKCF3aW5kb3c\/Lm5hdmlnYXRvcj8ubGFuZ3VhZ2U\/LnNwbGl0KCctJylbMV0pIHsKICAgICAgICByZXR1cm4gd2luZG93Py5uYXZpZ2F0b3I\/Lmxhbmd1YWdlPy50b1VwcGVyQ2FzZSgpOwogICAgICB9CiAgICAgIHJldHVybiB3aW5kb3c\/Lm5hdmlnYXRvcj8ubGFuZ3VhZ2U\/LnNwbGl0KCctJylbMV07CiAgICB9OwoKICAgIAogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdENvdW50cnlQcm9ncmFtKGRlZmF1bHRDb3VudHJ5Q29kZSwgc21zUHJvZ3JhbURhdGEpIHsKICAgICAgaWYgKCFzbXNQcm9ncmFtRGF0YSB8fCBzbXNQcm9ncmFtRGF0YS5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQoKICAgICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlID0gZ2V0QnJvd3Nlckxhbmd1YWdlKCk7CgogICAgICBpZiAoYnJvd3Nlckxhbmd1YWdlKSB7CiAgICAgICAgY29uc3QgZm91bmRQcm9ncmFtID0gc21zUHJvZ3JhbURhdGEuZmluZCgKICAgICAgICAgIChwcm9ncmFtKSA9PiBwcm9ncmFtPy5jb3VudHJ5Q29kZSA9PT0gYnJvd3Nlckxhbmd1YWdlLAogICAgICAgICk7CiAgICAgICAgaWYgKGZvdW5kUHJvZ3JhbSkgewogICAgICAgICAgcmV0dXJuIGZvdW5kUHJvZ3JhbTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChkZWZhdWx0Q291bnRyeUNvZGUpIHsKICAgICAgICBjb25zdCBmb3VuZFByb2dyYW0gPSBzbXNQcm9ncmFtRGF0YS5maW5kKAogICAgICAgICAgKHByb2dyYW0pID0+IHByb2dyYW0\/LmNvdW50cnlDb2RlID09PSBkZWZhdWx0Q291bnRyeUNvZGUsCiAgICAgICAgKTsKICAgICAgICBpZiAoZm91bmRQcm9ncmFtKSB7CiAgICAgICAgICByZXR1cm4gZm91bmRQcm9ncmFtOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHNtc1Byb2dyYW1EYXRhWzBdOwogICAgfQoKICAgIGZ1bmN0aW9uIHVwZGF0ZVNtc0xlZ2FsVGV4dChjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgIWZpZWxkTmFtZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcHJvZ3JhbXMgPSB3aW5kb3c\/Lk1DPy5zbXNQaG9uZURhdGE\/LnByb2dyYW1zOwogICAgICBpZiAoIXByb2dyYW1zIHx8ICFBcnJheS5pc0FycmF5KHByb2dyYW1zKSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcHJvZ3JhbSA9IHByb2dyYW1zLmZpbmQocHJvZ3JhbSA9PiBwcm9ncmFtPy5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGUpOwogICAgICBpZiAoIXByb2dyYW0gfHwgIXByb2dyYW0ucmVxdWlyZWRUZW1wbGF0ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgCiAgICAgIAogICAgICB2YXIgc21zQ29uc2VudEh0bWxSZW5kZXJpbmdGaXhFbmFibGVkID0gdHJ1ZTsKICAgICAgCiAgICAgIGNvbnN0IGxlZ2FsVGV4dEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbGVnYWwtdGV4dC0nICsgZmllbGROYW1lKTsKICAgICAgaWYgKCFsZWdhbFRleHRFbGVtZW50KSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICBjb25zdCBkaXZSZWdleCA9IG5ldyBSZWdFeHAoJzwvP1tkaXZdW14+XSo+JywgJ2dpJyk7CiAgICAgIGNvbnN0IGJsb2NrV3JhcHBlclJlZ2V4ID0gbmV3IFJlZ0V4cCgnPC8\/KD86ZGl2fHApW14+XSo+JywgJ2dpJyk7CiAgICAgIGNvbnN0IGZ1bGxBbmNob3JSZWdleCA9IG5ldyBSZWdFeHAoJzxhLio\/PC9hPicsICdnJyk7CiAgICAgIGNvbnN0IGFuY2hvclJlZ2V4ID0gbmV3IFJlZ0V4cCgnPGEgaHJlZj0iKC4qPykiIHRhcmdldD0iKC4qPykiPiguKj8pPC9hPicpOwogICAgICAKICAgICAgY29uc3QgdGVtcGxhdGUgPSBzbXNDb25zZW50SHRtbFJlbmRlcmluZ0ZpeEVuYWJsZWQKICAgICAgICA\/IHByb2dyYW0ucmVxdWlyZWRUZW1wbGF0ZQogICAgICAgICAgICAucmVwbGFjZSgvPFwvcD5ccyo8cFtePl0qPi9naSwgJyAnKQogICAgICAgICAgICAucmVwbGFjZShibG9ja1dyYXBwZXJSZWdleCwgJycpCiAgICAgICAgOiBwcm9ncmFtLnJlcXVpcmVkVGVtcGxhdGUucmVwbGFjZShkaXZSZWdleCwgJycpOwogICAgICAKICAgICAgCgogICAgICBsZWdhbFRleHRFbGVtZW50LnRleHRDb250ZW50ID0gJyc7CiAgICAgIGNvbnN0IHBhcnRzID0gdGVtcGxhdGUuc3BsaXQoLyg8YSBocmVmPSIuKj8iIHRhcmdldD0iLio\/Ij4uKj88XC9hPikvZyk7CiAgICAgIHBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCkgewogICAgICAgIGlmICghcGFydCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBhbmNob3JNYXRjaCA9IHBhcnQubWF0Y2goLzxhIGhyZWY9IiguKj8pIiB0YXJnZXQ9IiguKj8pIj4oLio\/KTxcL2E+Lyk7CiAgICAgICAgaWYgKGFuY2hvck1hdGNoKSB7CiAgICAgICAgICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICAgIGxpbmtFbGVtZW50LmhyZWYgPSBzYW5pdGl6ZVVybChhbmNob3JNYXRjaFsxXSk7CiAgICAgICAgICBsaW5rRWxlbWVudC50YXJnZXQgPSBzYW5pdGl6ZUh0bWwoYW5jaG9yTWF0Y2hbMl0pOwogICAgICAgICAgbGlua0VsZW1lbnQudGV4dENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoYW5jaG9yTWF0Y2hbM10pOwogICAgICAgICAgbGVnYWxUZXh0RWxlbWVudC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGxlZ2FsVGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBnZW5lcmF0ZURyb3Bkb3duT3B0aW9ucyhzbXNQcm9ncmFtRGF0YSkgewogICAgICBpZiAoIXNtc1Byb2dyYW1EYXRhIHx8IHNtc1Byb2dyYW1EYXRhLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHJldHVybiAnJzsKICAgICAgfQoKICAgICAgdmFyIHByb2dyYW1zID0gZmFsc2UKICAgICAgICA\/IHNtc1Byb2dyYW1EYXRhLmZpbHRlcihmdW5jdGlvbihwLCBpLCBhcnIpIHsKICAgICAgICAgICAgcmV0dXJuIGFyci5maW5kSW5kZXgoZnVuY3Rpb24ocSkgeyByZXR1cm4gcS5jb3VudHJ5Q29kZSA9PT0gcC5jb3VudHJ5Q29kZTsgfSkgPT09IGk7CiAgICAgICAgICB9KQogICAgICAgIDogc21zUHJvZ3JhbURhdGE7CiAgICAgIAogICAgICByZXR1cm4gcHJvZ3JhbXMubWFwKHByb2dyYW0gPT4gewogICAgICAgIGNvbnN0IGZsYWcgPSBnZXRDb3VudHJ5VW5pY29kZUZsYWcocHJvZ3JhbS5jb3VudHJ5Q29kZSk7CiAgICAgICAgY29uc3QgY291bnRyeU5hbWUgPSBnZXRDb3VudHJ5TmFtZShwcm9ncmFtLmNvdW50cnlDb2RlKTsKICAgICAgICBjb25zdCBjYWxsaW5nQ29kZSA9IHByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlIHx8ICcnOwogICAgICAgIC8vIFNhbml0aXplIGFsbCB2YWx1ZXMgdG8gcHJldmVudCBYU1MKICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb3VudHJ5Q29kZSA9IHNhbml0aXplSHRtbChwcm9ncmFtLmNvdW50cnlDb2RlIHx8ICcnKTsKICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb3VudHJ5TmFtZSA9IHNhbml0aXplSHRtbChjb3VudHJ5TmFtZSB8fCAnJyk7CiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ2FsbGluZ0NvZGUgPSBzYW5pdGl6ZUh0bWwoY2FsbGluZ0NvZGUgfHwgJycpOwogICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIHNhbml0aXplZENvdW50cnlDb2RlICsgJyI+JyArIHNhbml0aXplZENvdW50cnlOYW1lICsgJyAnICsgc2FuaXRpemVkQ2FsbGluZ0NvZGUgKyAnPC9vcHRpb24+JzsKICAgICAgfSkuam9pbignJyk7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0Q291bnRyeU5hbWUoY291bnRyeUNvZGUpIHsKICAgICAgaWYgKHdpbmRvdy5NQz8uc21zUGhvbmVEYXRhPy5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lcyAmJiBBcnJheS5pc0FycmF5KHdpbmRvdy5NQy5zbXNQaG9uZURhdGEuc21zUHJvZ3JhbURhdGFDb3VudHJ5TmFtZXMpKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aW5kb3cuTUMuc21zUGhvbmVEYXRhLnNtc1Byb2dyYW1EYXRhQ291bnRyeU5hbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAod2luZG93Lk1DLnNtc1Bob25lRGF0YS5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lc1tpXS5jb2RlID09PSBjb3VudHJ5Q29kZSkgewogICAgICAgICAgICByZXR1cm4gd2luZG93Lk1DLnNtc1Bob25lRGF0YS5zbXNQcm9ncmFtRGF0YUNvdW50cnlOYW1lc1tpXS5uYW1lOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gY291bnRyeUNvZGU7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdFBsYWNlaG9sZGVyKGNvdW50cnlDb2RlKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgdHlwZW9mIGNvdW50cnlDb2RlICE9PSAnc3RyaW5nJykgewogICAgICAgIHJldHVybiAnKzEgMDAwIDAwMCAwMDAwJzsgLy8gRGVmYXVsdCBVUyBwbGFjZWhvbGRlcgogICAgICB9CiAgICAgIAogICAgICAgICAgICB2YXIgbW9ja1BsYWNlaG9sZGVycyA9IFsKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ1VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgVVMgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnR0InLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDQgMDAwMCAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBHQiBjb3VudHJ5IGNvZGUgKzQ0IGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0EnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMSAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBDQSBjb3VudHJ5IGNvZGUgKzEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys2MSAwMDAgMDAwIDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIEFVIGNvdW50cnkgY29kZSArNjEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdERScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0OSAwMDAgMDAwMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBERS1Mw6RuZGVydm9yd2FobCArNDkgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRlInLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzMgMCAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEZSICszMyBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRVMnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzQgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdXlhIGVsIGPDs2RpZ28gZGUgcGHDrXMgRVMgKzM0IGFudGVzIGRlbCBuw7ptZXJvIGRlIHRlbMOpZm9ubycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ05MJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMxIDAgMDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdWb2VnIGRlIE5MLWxhbmRjb2RlICszMSB0b2UgdsOzw7NyIGhldCB0ZWxlZm9vbm51bW1lcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0JFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMyIDAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEJFICszMiBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0gnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDEgMDAgMDAwIDAwIDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIENILUzDpG5kZXJ2b3J3YWhsICs0MSBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0MyAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgQVQtTMOkbmRlcnZvcndhaGwgKzQzIGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM1MyAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIElFIGNvdW50cnkgY29kZSArMzUzIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnSVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzkgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZXJlIGlsIHByZWZpc3NvIGludGVybmF6aW9uYWxlIElUICszOSBwcmltYSBkZWwgbnVtZXJvIGRpIHRlbGVmb25vJywKICAgICAgICB9LAogICAgICBdOwoKICAgICAgY29uc3Qgc2VsZWN0ZWRQbGFjZWhvbGRlciA9IG1vY2tQbGFjZWhvbGRlcnMuZmluZChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGU7CiAgICAgIH0pOwogICAgICAKICAgICAgcmV0dXJuIHNlbGVjdGVkUGxhY2Vob2xkZXIgPyBzZWxlY3RlZFBsYWNlaG9sZGVyLnBsYWNlaG9sZGVyIDogbW9ja1BsYWNlaG9sZGVyc1swXS5wbGFjZWhvbGRlcjsKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVQbGFjZWhvbGRlcihjb3VudHJ5Q29kZSwgZmllbGROYW1lKSB7CiAgICAgIGlmICghY291bnRyeUNvZGUgfHwgIWZpZWxkTmFtZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcGhvbmVJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtY2UtJyArIGZpZWxkTmFtZSk7CiAgICAgIGlmICghcGhvbmVJbnB1dCkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSBnZXREZWZhdWx0UGxhY2Vob2xkZXIoY291bnRyeUNvZGUpOwogICAgICBpZiAocGxhY2Vob2xkZXIpIHsKICAgICAgICBwaG9uZUlucHV0LnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVDb3VudHJ5Q29kZUluc3RydWN0aW9uKGNvdW50cnlDb2RlLCBmaWVsZE5hbWUpIHsKICAgICAgdXBkYXRlUGxhY2Vob2xkZXIoY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIGdldERlZmF1bHRIZWxwVGV4dChjb3VudHJ5Q29kZSkgewogICAgICB2YXIgbW9ja1BsYWNlaG9sZGVycyA9IFsKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ1VTJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzEgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZSB0aGUgVVMgY291bnRyeSBjb2RlICsxIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnR0InLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDQgMDAwMCAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBHQiBjb3VudHJ5IGNvZGUgKzQ0IGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0EnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMSAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdWRlIHRoZSBDQSBjb3VudHJ5IGNvZGUgKzEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys2MSAwMDAgMDAwIDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIEFVIGNvdW50cnkgY29kZSArNjEgYmVmb3JlIHRoZSBwaG9uZSBudW1iZXInLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdERScsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0OSAwMDAgMDAwMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0bDvGdlbiBTaWUgdm9yIGRlciBUZWxlZm9ubnVtbWVyIGRpZSBERS1Mw6RuZGVydm9yd2FobCArNDkgZWluJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRlInLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzMgMCAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEZSICszMyBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnRVMnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzQgMDAwIDAwMCAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdJbmNsdXlhIGVsIGPDs2RpZ28gZGUgcGHDrXMgRVMgKzM0IGFudGVzIGRlbCBuw7ptZXJvIGRlIHRlbMOpZm9ubycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ05MJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMxIDAgMDAwMDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdWb2VnIGRlIE5MLWxhbmRjb2RlICszMSB0b2UgdsOzw7NyIGhldCB0ZWxlZm9vbm51bW1lcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0JFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzMyIDAwMCAwMCAwMCAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZXogbGUgY29kZSBwYXlzIEJFICszMiBhdmFudCBsZSBudW3DqXJvIGRlIHTDqWzDqXBob25lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnQ0gnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrNDEgMDAgMDAwIDAwIDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnRsO8Z2VuIFNpZSB2b3IgZGVyIFRlbGVmb25udW1tZXIgZGllIENILUzDpG5kZXJ2b3J3YWhsICs0MSBlaW4nLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgY291bnRyeUNvZGU6ICdBVCcsCiAgICAgICAgICBwbGFjZWhvbGRlcjogJys0MyAwMDAgMDAwIDAwMDAnLAogICAgICAgICAgaGVscFRleHQ6ICdGw7xnZW4gU2llIHZvciBkZXIgVGVsZWZvbm51bW1lciBkaWUgQVQtTMOkbmRlcnZvcndhaGwgKzQzIGVpbicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBjb3VudHJ5Q29kZTogJ0lFJywKICAgICAgICAgIHBsYWNlaG9sZGVyOiAnKzM1MyAwMCAwMDAgMDAwMCcsCiAgICAgICAgICBoZWxwVGV4dDogJ0luY2x1ZGUgdGhlIElFIGNvdW50cnkgY29kZSArMzUzIGJlZm9yZSB0aGUgcGhvbmUgbnVtYmVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGNvdW50cnlDb2RlOiAnSVQnLAogICAgICAgICAgcGxhY2Vob2xkZXI6ICcrMzkgMDAwIDAwMCAwMDAwJywKICAgICAgICAgIGhlbHBUZXh0OiAnSW5jbHVkZXJlIGlsIHByZWZpc3NvIGludGVybmF6aW9uYWxlIElUICszOSBwcmltYSBkZWwgbnVtZXJvIGRpIHRlbGVmb25vJywKICAgICAgICB9LAogICAgICBdOwogICAgICAKICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCB0eXBlb2YgY291bnRyeUNvZGUgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgcmV0dXJuIG1vY2tQbGFjZWhvbGRlcnNbMF0uaGVscFRleHQ7CiAgICAgIH0KICAgICAgCiAgICAgIGNvbnN0IHNlbGVjdGVkSGVscFRleHQgPSBtb2NrUGxhY2Vob2xkZXJzLmZpbmQoZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5jb3VudHJ5Q29kZSA9PT0gY291bnRyeUNvZGU7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuIHNlbGVjdGVkSGVscFRleHQgPyBzZWxlY3RlZEhlbHBUZXh0LmhlbHBUZXh0IDogbW9ja1BsYWNlaG9sZGVyc1swXS5oZWxwVGV4dDsKICAgIH0KCiAgICBmdW5jdGlvbiBzZXREZWZhdWx0SGVscFRleHQoY291bnRyeUNvZGUpIHsKICAgICAgY29uc3QgaGVscFRleHRTcGFuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hlbHAtdGV4dCcpOwogICAgICBpZiAoIWhlbHBUZXh0U3BhbikgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiB1cGRhdGVIZWxwVGV4dENvdW50cnlDb2RlKGNvdW50cnlDb2RlLCBmaWVsZE5hbWUpIHsKICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCAhZmllbGROYW1lKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICBzZXREZWZhdWx0SGVscFRleHQoY291bnRyeUNvZGUpOwogICAgfQoKICAgIGZ1bmN0aW9uIGluaXRpYWxpemVTbXNQaG9uZURyb3Bkb3duKGZpZWxkTmFtZSkgewogICAgICBpZiAoIWZpZWxkTmFtZSB8fCB0eXBlb2YgZmllbGROYW1lICE9PSAnc3RyaW5nJykgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgZHJvcGRvd24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY291bnRyeS1zZWxlY3QtJyArIGZpZWxkTmFtZSk7CiAgICAgIGNvbnN0IGRpc3BsYXlGbGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ZsYWctZGlzcGxheS0nICsgZmllbGROYW1lKTsKICAgICAgCiAgICAgIGlmICghZHJvcGRvd24gfHwgIWRpc3BsYXlGbGFnKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBzbXNQaG9uZURhdGEgPSB3aW5kb3cuTUM\/LnNtc1Bob25lRGF0YTsKICAgICAgaWYgKHNtc1Bob25lRGF0YSAmJiBzbXNQaG9uZURhdGEucHJvZ3JhbXMgJiYgQXJyYXkuaXNBcnJheShzbXNQaG9uZURhdGEucHJvZ3JhbXMpKSB7CiAgICAgICAgZHJvcGRvd24uaW5uZXJIVE1MID0gZ2VuZXJhdGVEcm9wZG93bk9wdGlvbnMoc21zUGhvbmVEYXRhLnByb2dyYW1zKTsKICAgICAgfQoKICAgICAgY29uc3QgZGVmYXVsdFByb2dyYW0gPSBnZXREZWZhdWx0Q291bnRyeVByb2dyYW0oc21zUGhvbmVEYXRhPy5kZWZhdWx0Q291bnRyeUNvZGUsIHNtc1Bob25lRGF0YT8ucHJvZ3JhbXMpOwogICAgICBpZiAoZGVmYXVsdFByb2dyYW0gJiYgZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUpIHsKICAgICAgICBkcm9wZG93bi52YWx1ZSA9IGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlOwogICAgICAgIAogICAgICAgIGNvbnN0IGZsYWdTcGFuID0gZGlzcGxheUZsYWc\/LnF1ZXJ5U2VsZWN0b3IoJyNmbGFnLWVtb2ppLScgKyBmaWVsZE5hbWUpOwogICAgICAgIGlmIChmbGFnU3BhbikgewogICAgICAgICAgZmxhZ1NwYW4udGV4dENvbnRlbnQgPSBnZXRDb3VudHJ5VW5pY29kZUZsYWcoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUpOwogICAgICAgICAgZmxhZ1NwYW4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc2FuaXRpemVIdG1sKGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDb2RlKSArICcgZmxhZycpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB1cGRhdGVTbXNMZWdhbFRleHQoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXIoZGVmYXVsdFByb2dyYW0uY291bnRyeUNvZGUsIGZpZWxkTmFtZSk7CiAgICAgICAgdXBkYXRlQ291bnRyeUNvZGVJbnN0cnVjdGlvbihkZWZhdWx0UHJvZ3JhbS5jb3VudHJ5Q29kZSwgZmllbGROYW1lKTsKICAgICAgfQoKICAgICAKICAgICAgdmFyIHNtc05vdFJlcXVpcmVkUmVtb3ZlQ291bnRyeUNvZGVFbmFibGVkID0gdHJ1ZTsKICAgICAgdmFyIHNtc0ZpZWxkID0gT2JqZWN0LnZhbHVlcyh7IkVNQUlMIjp7Im5hbWUiOiJFTUFJTCIsImxhYmVsIjoiRW1haWwgQWRkcmVzcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImVtYWlsIiwicmVxdWlyZWQiOnRydWUsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJFbWFpbCBBZGRyZXNzIiwibWVyZ2VfaWQiOjAsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjAsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJGTkFNRSI6eyJuYW1lIjoiRk5BTUUiLCJsYWJlbCI6IkZpcnN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRmlyc3QgTmFtZSIsIm1lcmdlX2lkIjoxLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoxLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiTE5BTUUiOnsibmFtZSI6IkxOQU1FIiwibGFiZWwiOiJMYXN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiTGFzdCBOYW1lIiwibWVyZ2VfaWQiOjIsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjIsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJpbnRlcmVzdHNfMTgwMTQ4Ijp7Im5hbWUiOiJpbnRlcmVzdHNfMTgwMTQ4IiwibGFiZWwiOiJXaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImNoZWNrYm94IiwicmVxdWlyZWQiOmZhbHNlLCJjaG9pY2VzIjpbeyJ2YWx1ZSI6IjEiLCJsYWJlbCI6Ik1ldGFTeW50aCAoV2luZG93cyBBcHApIn0seyJ2YWx1ZSI6IjIiLCJsYWJlbCI6IkltYWdlIFNlcXVlbmNlciAoVlNUIHBsdWctaW4pIn0seyJ2YWx1ZSI6IjQiLCJsYWJlbCI6Ilh4IFtNSURJIGZvciBNZXRhU3ludGhdIChXaW5kb3dzIEFwcCkifV0sImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJXaW5kb3dzIEdyb3VwIiwiZ3JvdXBfaWQiOjE4MDE0OCwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MywiZmllbGRfdHlwZSI6Imdyb3VwIn0sIkFERFJFU1MiOnsibmFtZSI6IkFERFJFU1MiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjMsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6MTY0fSwiUEhPTkUiOnsibmFtZSI6IlBIT05FIiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0IjoiIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NH0sIk1NRVJHRTgiOnsibmFtZSI6Ik1NRVJHRTgiLCJsYWJlbCI6IlByb2QgSUQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBJRCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjh9LCJNTUVSR0U5Ijp7Im5hbWUiOiJNTUVSR0U5IiwibGFiZWwiOiJQcm9kIERlc2NyaXAiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBEZXNjcmlwIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6OX0sIk1NRVJHRTEwIjp7Im5hbWUiOiJNTUVSR0UxMCIsImxhYmVsIjoiVmVyc2lvbiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJWZXJzaW9uIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTB9LCJNTUVSR0UxMSI6eyJuYW1lIjoiTU1FUkdFMTEiLCJsYWJlbCI6IkN1c3RvbWVyIE5vdGVzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkN1c3RvbWVyIE5vdGVzIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTF9LCJNTUVSR0U1Ijp7Im5hbWUiOiJNTUVSR0U1IiwibGFiZWwiOiJVbnRpdGxlZCIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6Im51bWJlciIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlVudGl0bGVkIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NX0sIk1NRVJHRTYiOnsibmFtZSI6Ik1NRVJHRTYiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjYsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6IjE2NCJ9LCJNTUVSR0U3Ijp7Im5hbWUiOiJNTUVSR0U3IiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0Ijoibm9uZSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjd9LCJNTUVSR0UxMiI6eyJuYW1lIjoiTU1FUkdFMTIiLCJsYWJlbCI6IkRhdGUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJkYXRlIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRGF0ZSIsImRhdGVmb3JtYXQiOiJNTS9ERC9ZWVlZIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTJ9fSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLm5hbWUgPT09IGZpZWxkTmFtZSAmJiBmLnR5cGUgPT09ICdzbXNwaG9uZSc7IH0pOwogICAgICB2YXIgaXNSZXF1aXJlZCA9IHNtc0ZpZWxkID8gc21zRmllbGQucmVxdWlyZWQgOiBmYWxzZTsKICAgICAgdmFyIHNob3VsZEFwcGVuZENvdW50cnlDb2RlID0gc21zTm90UmVxdWlyZWRSZW1vdmVDb3VudHJ5Q29kZUVuYWJsZWQgPyBpc1JlcXVpcmVkIDogdHJ1ZTsKICAgICAgCiAgICAgIHZhciBwaG9uZUlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21jZS0nICsgZmllbGROYW1lKTsKICAgICAgaWYgKHBob25lSW5wdXQgJiYgZGVmYXVsdFByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlICYmIHNob3VsZEFwcGVuZENvdW50cnlDb2RlKSB7CiAgICAgICAgcGhvbmVJbnB1dC52YWx1ZSA9IGRlZmF1bHRQcm9ncmFtLmNvdW50cnlDYWxsaW5nQ29kZTsKICAgICAgfQogICAgICAKCgogICAgICBkaXNwbGF5RmxhZz8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZHJvcGRvd24uZm9jdXMoKTsKICAgICAgfSk7CgoKICAgICAgZHJvcGRvd24\/LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9IHRoaXMudmFsdWU7CiAgICAgICAgCiAgICAgICAgaWYgKCFzZWxlY3RlZENvdW50cnkgfHwgdHlwZW9mIHNlbGVjdGVkQ291bnRyeSAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgY29uc3QgZmxhZ1NwYW4gPSBkaXNwbGF5RmxhZz8ucXVlcnlTZWxlY3RvcignI2ZsYWctZW1vamktJyArIGZpZWxkTmFtZSk7CiAgICAgICAgaWYgKGZsYWdTcGFuKSB7CiAgICAgICAgICBmbGFnU3Bhbi50ZXh0Q29udGVudCA9IGdldENvdW50cnlVbmljb2RlRmxhZyhzZWxlY3RlZENvdW50cnkpOwogICAgICAgICAgZmxhZ1NwYW4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc2FuaXRpemVIdG1sKHNlbGVjdGVkQ291bnRyeSkgKyAnIGZsYWcnKTsKICAgICAgICB9CgogICAgICAgICAKICAgICAgICBjb25zdCBzZWxlY3RlZFByb2dyYW0gPSB3aW5kb3cuTUM\/LnNtc1Bob25lRGF0YT8ucHJvZ3JhbXMuZmluZChmdW5jdGlvbihwcm9ncmFtKSB7CiAgICAgICAgICByZXR1cm4gcHJvZ3JhbSAmJiBwcm9ncmFtLmNvdW50cnlDb2RlID09PSBzZWxlY3RlZENvdW50cnk7CiAgICAgICAgfSk7CgogICAgICAgIHZhciBzbXNOb3RSZXF1aXJlZFJlbW92ZUNvdW50cnlDb2RlRW5hYmxlZCA9IHRydWU7CiAgICAgICAgdmFyIHNtc0ZpZWxkID0gT2JqZWN0LnZhbHVlcyh7IkVNQUlMIjp7Im5hbWUiOiJFTUFJTCIsImxhYmVsIjoiRW1haWwgQWRkcmVzcyIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImVtYWlsIiwicmVxdWlyZWQiOnRydWUsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJFbWFpbCBBZGRyZXNzIiwibWVyZ2VfaWQiOjAsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjAsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJGTkFNRSI6eyJuYW1lIjoiRk5BTUUiLCJsYWJlbCI6IkZpcnN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRmlyc3QgTmFtZSIsIm1lcmdlX2lkIjoxLCJoZWxwX3RleHRfZW5hYmxlZCI6ZmFsc2UsImVuYWJsZWQiOnRydWUsIm9yZGVyIjoxLCJmaWVsZF90eXBlIjoibWVyZ2UifSwiTE5BTUUiOnsibmFtZSI6IkxOQU1FIiwibGFiZWwiOiJMYXN0IE5hbWUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiTGFzdCBOYW1lIiwibWVyZ2VfaWQiOjIsImhlbHBfdGV4dF9lbmFibGVkIjpmYWxzZSwiZW5hYmxlZCI6dHJ1ZSwib3JkZXIiOjIsImZpZWxkX3R5cGUiOiJtZXJnZSJ9LCJpbnRlcmVzdHNfMTgwMTQ4Ijp7Im5hbWUiOiJpbnRlcmVzdHNfMTgwMTQ4IiwibGFiZWwiOiJXaW5kb3dzIEFwcHMgb2YgSW50ZXJlc3QgKHNlbGVjdCBhbGwgd2hpY2ggYXBwbHkpOiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6ImNoZWNrYm94IiwicmVxdWlyZWQiOmZhbHNlLCJjaG9pY2VzIjpbeyJ2YWx1ZSI6IjEiLCJsYWJlbCI6Ik1ldGFTeW50aCAoV2luZG93cyBBcHApIn0seyJ2YWx1ZSI6IjIiLCJsYWJlbCI6IkltYWdlIFNlcXVlbmNlciAoVlNUIHBsdWctaW4pIn0seyJ2YWx1ZSI6IjQiLCJsYWJlbCI6Ilh4IFtNSURJIGZvciBNZXRhU3ludGhdIChXaW5kb3dzIEFwcCkifV0sImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJXaW5kb3dzIEdyb3VwIiwiZ3JvdXBfaWQiOjE4MDE0OCwiaGVscF90ZXh0X2VuYWJsZWQiOmZhbHNlLCJlbmFibGVkIjp0cnVlLCJvcmRlciI6MywiZmllbGRfdHlwZSI6Imdyb3VwIn0sIkFERFJFU1MiOnsibmFtZSI6IkFERFJFU1MiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjMsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6MTY0fSwiUEhPTkUiOnsibmFtZSI6IlBIT05FIiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0IjoiIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NH0sIk1NRVJHRTgiOnsibmFtZSI6Ik1NRVJHRTgiLCJsYWJlbCI6IlByb2QgSUQiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBJRCIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjh9LCJNTUVSR0U5Ijp7Im5hbWUiOiJNTUVSR0U5IiwibGFiZWwiOiJQcm9kIERlc2NyaXAiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJ0ZXh0IiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiUHJvZCBEZXNjcmlwIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6OX0sIk1NRVJHRTEwIjp7Im5hbWUiOiJNTUVSR0UxMCIsImxhYmVsIjoiVmVyc2lvbiIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6InRleHQiLCJyZXF1aXJlZCI6ZmFsc2UsImF1ZGllbmNlX2ZpZWxkX25hbWUiOiJWZXJzaW9uIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTB9LCJNTUVSR0UxMSI6eyJuYW1lIjoiTU1FUkdFMTEiLCJsYWJlbCI6IkN1c3RvbWVyIE5vdGVzIiwiaGVscGVyX3RleHQiOiIiLCJ0eXBlIjoidGV4dCIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IkN1c3RvbWVyIE5vdGVzIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTF9LCJNTUVSR0U1Ijp7Im5hbWUiOiJNTUVSR0U1IiwibGFiZWwiOiJVbnRpdGxlZCIsImhlbHBlcl90ZXh0IjoiIiwidHlwZSI6Im51bWJlciIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlVudGl0bGVkIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6NX0sIk1NRVJHRTYiOnsibmFtZSI6Ik1NRVJHRTYiLCJsYWJlbCI6IkFkZHJlc3MiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJhZGRyZXNzIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiQWRkcmVzcyIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjYsImNvdW50cmllcyI6eyIyIjoiQWxiYW5pYSIsIjMiOiJBbGdlcmlhIiwiNCI6IkFuZG9ycmEiLCI1IjoiQW5nb2xhIiwiNiI6IkFyZ2VudGluYSIsIjciOiJBcm1lbmlhIiwiOCI6IkF1c3RyYWxpYSIsIjkiOiJBdXN0cmlhIiwiMTAiOiJBemVyYmFpamFuIiwiMTEiOiJCYWhhbWFzIiwiMTIiOiJCYWhyYWluIiwiMTMiOiJCYW5nbGFkZXNoIiwiMTQiOiJCYXJiYWRvcyIsIjE1IjoiQmVsYXJ1cyIsIjE2IjoiQmVsZ2l1bSIsIjE3IjoiQmVsaXplIiwiMTgiOiJCZW5pbiIsIjE5IjoiQmVybXVkYSIsIjIwIjoiQmh1dGFuIiwiMjEiOiJCb2xpdmlhIiwiMjIiOiJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwiMjMiOiJCb3Rzd2FuYSIsIjI0IjoiQnJhemlsIiwiMjUiOiJCdWxnYXJpYSIsIjI2IjoiQnVya2luYSBGYXNvIiwiMjciOiJCdXJ1bmRpIiwiMjgiOiJDYW1ib2RpYSIsIjI5IjoiQ2FtZXJvb24iLCIzMCI6IkNhbmFkYSIsIjMxIjoiQ2FwZSBWZXJkZSIsIjMyIjoiQ2F5bWFuIElzbGFuZHMiLCIzMyI6IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIsIjM0IjoiQ2hhZCIsIjM1IjoiQ2hpbGUiLCIzNiI6IkNoaW5hIiwiMzciOiJDb2xvbWJpYSIsIjM4IjoiQ29uZ28iLCI0MCI6IkNyb2F0aWEiLCI0MSI6IkN5cHJ1cyIsIjQyIjoiQ3plY2ggUmVwdWJsaWMiLCI0MyI6IkRlbm1hcmsiLCI0NCI6IkRqaWJvdXRpIiwiNDUiOiJFY3VhZG9yIiwiNDYiOiJFZ3lwdCIsIjQ3IjoiRWwgU2FsdmFkb3IiLCI0OCI6IkVxdWF0b3JpYWwgR3VpbmVhIiwiNDkiOiJFcml0cmVhIiwiNTAiOiJFc3RvbmlhIiwiNTEiOiJFdGhpb3BpYSIsIjUyIjoiRmlqaSIsIjUzIjoiRmlubGFuZCIsIjU0IjoiRnJhbmNlIiwiNTYiOiJHYWJvbiIsIjU3IjoiR2FtYmlhIiwiNTgiOiJHZW9yZ2lhIiwiNTkiOiJHZXJtYW55IiwiNjAiOiJHaGFuYSIsIjYxIjoiR3JlZWNlIiwiNjIiOiJHdWFtIiwiNjMiOiJHdWluZWEiLCI2NCI6Ikd1aW5lYS1CaXNzYXUiLCI2NSI6Ikd1eWFuYSIsIjY2IjoiSG9uZHVyYXMiLCI2NyI6IkhvbmcgS29uZyIsIjY4IjoiSHVuZ2FyeSIsIjY5IjoiSWNlbGFuZCIsIjcwIjoiSW5kaWEiLCI3MSI6IkluZG9uZXNpYSIsIjc0IjoiSXJlbGFuZCIsIjc1IjoiSXNyYWVsIiwiNzYiOiJJdGFseSIsIjc4IjoiSmFwYW4iLCI3OSI6IkpvcmRhbiIsIjgwIjoiS2F6YWtoc3RhbiIsIjgxIjoiS2VueWEiLCI4MiI6Ikt1d2FpdCIsIjgzIjoiS3lyZ3l6c3RhbiIsIjg0IjoiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWMiLCI4NSI6IkxhdHZpYSIsIjg2IjoiTGViYW5vbiIsIjg3IjoiTGVzb3RobyIsIjg4IjoiTGliZXJpYSIsIjkwIjoiTGllY2h0ZW5zdGVpbiIsIjkxIjoiTGl0aHVhbmlhIiwiOTIiOiJMdXhlbWJvdXJnIiwiOTMiOiJNYWNlZG9uaWEiLCI5NCI6Ik1hZGFnYXNjYXIiLCI5NSI6Ik1hbGF3aSIsIjk2IjoiTWFsYXlzaWEiLCI5NyI6Ik1hbGRpdmVzIiwiOTgiOiJNYWxpIiwiOTkiOiJNYWx0YSIsIjEwMCI6Ik1hdXJpdGFuaWEiLCIxMDEiOiJNZXhpY28iLCIxMDIiOiJNb2xkb3ZhIiwiMTAzIjoiTW9uYWNvIiwiMTA0IjoiTW9uZ29saWEiLCIxMDUiOiJNb3JvY2NvIiwiMTA2IjoiTW96YW1iaXF1ZSIsIjEwNyI6Ik5hbWliaWEiLCIxMDgiOiJOZXBhbCIsIjEwOSI6Ik5ldGhlcmxhbmRzIiwiMTEwIjoiTmV0aGVybGFuZHMgQW50aWxsZXMiLCIxMTEiOiJOZXcgWmVhbGFuZCIsIjExMiI6Ik5pY2FyYWd1YSIsIjExMyI6Ik5pZ2VyIiwiMTE0IjoiTmlnZXJpYSIsIjExNiI6Ik5vcndheSIsIjExNyI6Ik9tYW4iLCIxMTgiOiJQYWtpc3RhbiIsIjExOSI6IlBhbmFtYSIsIjEyMCI6IlBhcmFndWF5IiwiMTIxIjoiUGVydSIsIjEyMiI6IlBoaWxpcHBpbmVzIiwiMTIzIjoiUG9sYW5kIiwiMTI0IjoiUG9ydHVnYWwiLCIxMjYiOiJRYXRhciIsIjEyNyI6IlJldW5pb24iLCIxMjgiOiJSb21hbmlhIiwiMTI5IjoiUnVzc2lhIiwiMTMwIjoiUndhbmRhIiwiMTMyIjoiU2Ftb2EgKEluZGVwZW5kZW50KSIsIjEzMyI6IlNhdWRpIEFyYWJpYSIsIjEzNCI6IlNlbmVnYWwiLCIxMzUiOiJTZXljaGVsbGVzIiwiMTM2IjoiU2llcnJhIExlb25lIiwiMTM3IjoiU2luZ2Fwb3JlIiwiMTM4IjoiU2xvdmFraWEiLCIxMzkiOiJTbG92ZW5pYSIsIjE0MCI6IlNvbWFsaWEiLCIxNDEiOiJTb3V0aCBBZnJpY2EiLCIxNDIiOiJTb3V0aCBLb3JlYSIsIjE0MyI6IlNwYWluIiwiMTQ0IjoiU3JpIExhbmthIiwiMTQ2IjoiU3VyaW5hbWUiLCIxNDciOiJTd2F6aWxhbmQiLCIxNDgiOiJTd2VkZW4iLCIxNDkiOiJTd2l0emVybGFuZCIsIjE1MiI6IlRhaXdhbiIsIjE1MyI6IlRhbnphbmlhIiwiMTU0IjoiVGhhaWxhbmQiLCIxNTUiOiJUb2dvIiwiMTU2IjoiVHVuaXNpYSIsIjE1NyI6IlR1cmtpeWUiLCIxNTgiOiJUdXJrbWVuaXN0YW4iLCIxNTkiOiJVZ2FuZGEiLCIxNjEiOiJVa3JhaW5lIiwiMTYyIjoiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLCIxNjMiOiJVcnVndWF5IiwiMTY0IjoiVVNBIiwiMTY1IjoiVXpiZWtpc3RhbiIsIjE2NiI6IlZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpIiwiMTY3IjoiVmVuZXp1ZWxhIiwiMTY4IjoiVmlldG5hbSIsIjE2OSI6IlZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSIsIjE3MCI6IlllbWVuIiwiMTczIjoiWmFtYmlhIiwiMTc0IjoiWmltYmFid2UiLCIxNzUiOiJBbnRpZ3VhIEFuZCBCYXJidWRhIiwiMTc2IjoiQW5ndWlsbGEiLCIxNzgiOiJBbWVyaWNhbiBTYW1vYSIsIjE3OSI6IkFydWJhIiwiMTgwIjoiQnJ1bmVpIERhcnVzc2FsYW0iLCIxODEiOiJCb3V2ZXQgSXNsYW5kIiwiMTgzIjoiQ29vayBJc2xhbmRzIiwiMTg1IjoiQ2hyaXN0bWFzIElzbGFuZCIsIjE4NyI6IkRvbWluaWNhbiBSZXB1YmxpYyIsIjE4OCI6Ildlc3Rlcm4gU2FoYXJhIiwiMTg5IjoiRmFsa2xhbmQgSXNsYW5kcyIsIjE5MSI6IkZhcm9lIElzbGFuZHMiLCIxOTIiOiJHcmVuYWRhIiwiMTkzIjoiRnJlbmNoIEd1aWFuYSIsIjE5NCI6IkdpYnJhbHRhciIsIjE5NSI6IkdyZWVubGFuZCIsIjE5NiI6Ikd1YWRlbG91cGUiLCIxOTgiOiJHdWF0ZW1hbGEiLCIyMDAiOiJIYWl0aSIsIjIwMiI6IkphbWFpY2EiLCIyMDMiOiJLaXJpYmF0aSIsIjIwNCI6IkNvbW9yb3MiLCIyMDUiOiJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCIyMDYiOiJTYWludCBMdWNpYSIsIjIwNyI6Ik1hcnNoYWxsIElzbGFuZHMiLCIyMDgiOiJNYWNhdSIsIjIxMCI6Ik1hcnRpbmlxdWUiLCIyMTIiOiJNYXVyaXRpdXMiLCIyMTMiOiJOZXcgQ2FsZWRvbmlhIiwiMjE0IjoiTm9yZm9sayBJc2xhbmQiLCIyMTUiOiJOYXVydSIsIjIxNyI6Ik5pdWUiLCIyMTkiOiJQYXB1YSBOZXcgR3VpbmVhIiwiMjIxIjoiUGl0Y2Fpcm4iLCIyMjIiOiJQYWxhdSIsIjIyMyI6IlNvbG9tb24gSXNsYW5kcyIsIjIyNSI6IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcyIsIjIyNyI6IlNhbiBNYXJpbm8iLCIyMzIiOiJUb25nYSIsIjIzMyI6IlRpbW9yLUxlc3RlIiwiMjM0IjoiVHJpbmlkYWQgYW5kIFRvYmFnbyIsIjIzNSI6IlR1dmFsdSIsIjIzNyI6IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwiMjM4IjoiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwiMjM5IjoiVmFudWF0dSIsIjI0MSI6Ik1heW90dGUiLCIyNDIiOiJNeWFubWFyIiwiMjU1IjoiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwiMjU3IjoiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiLCIyNjAiOiJUYWppa2lzdGFuIiwiMjYyIjoiVW5pdGVkIEtpbmdkb20iLCIyNjgiOiJDb3N0YSBSaWNhIiwiMjcwIjoiR3Vlcm5zZXkiLCIyNzIiOiJOb3J0aCBLb3JlYSIsIjI3NCI6IkFmZ2hhbmlzdGFuIiwiMjc1IjoiQ290ZSBEJ0l2b2lyZSIsIjI3NiI6IkN1YmEiLCIyNzciOiJGcmVuY2ggUG9seW5lc2lhIiwiMjc4IjoiSXJhbiIsIjI3OSI6IklyYXEiLCIyODEiOiJMaWJ5YSIsIjI4MiI6IlBhbGVzdGluZSIsIjI4NSI6IlN5cmlhIiwiMjg2IjoiQWFsYW5kIElzbGFuZHMiLCIyODciOiJUdXJrcyAmIENhaWNvcyBJc2xhbmRzIiwiMjg4IjoiSmVyc2V5ICAoQ2hhbm5lbCBJc2xhbmRzKSIsIjI4OSI6IkRvbWluaWNhIiwiMjkwIjoiTW9udGVuZWdybyIsIjI5MyI6IlN1ZGFuIiwiMjk0IjoiTW9udHNlcnJhdCIsIjI5OCI6IkN1cmFjYW8iLCIzMDIiOiJTaW50IE1hYXJ0ZW4iLCIzMTEiOiJTb3V0aCBTdWRhbiIsIjMxNSI6IlJlcHVibGljIG9mIEtvc292byIsIjMxOCI6IkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsIjMyMyI6IklzbGUgb2YgTWFuIiwiMzI0IjoiU2FpbnQgTWFydGluIiwiMzI1IjoiQm9uYWlyZSwgU2FpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIiwiMzI2IjoiU2VyYmlhIiwiMzI3IjoiU2FpbnQgQmFydGhlbGVteSJ9LCJkZWZhdWx0Y291bnRyeSI6IjE2NCJ9LCJNTUVSR0U3Ijp7Im5hbWUiOiJNTUVSR0U3IiwibGFiZWwiOiJQaG9uZSBOdW1iZXIiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJwaG9uZSIsInJlcXVpcmVkIjpmYWxzZSwiYXVkaWVuY2VfZmllbGRfbmFtZSI6IlBob25lIE51bWJlciIsInBob25lZm9ybWF0Ijoibm9uZSIsImVuYWJsZWQiOmZhbHNlLCJvcmRlciI6bnVsbCwiZmllbGRfdHlwZSI6Im1lcmdlIiwibWVyZ2VfaWQiOjd9LCJNTUVSR0UxMiI6eyJuYW1lIjoiTU1FUkdFMTIiLCJsYWJlbCI6IkRhdGUiLCJoZWxwZXJfdGV4dCI6IiIsInR5cGUiOiJkYXRlIiwicmVxdWlyZWQiOmZhbHNlLCJhdWRpZW5jZV9maWVsZF9uYW1lIjoiRGF0ZSIsImRhdGVmb3JtYXQiOiJNTS9ERC9ZWVlZIiwiZW5hYmxlZCI6ZmFsc2UsIm9yZGVyIjpudWxsLCJmaWVsZF90eXBlIjoibWVyZ2UiLCJtZXJnZV9pZCI6MTJ9fSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLm5hbWUgPT09IGZpZWxkTmFtZSAmJiBmLnR5cGUgPT09ICdzbXNwaG9uZSc7IH0pOwogICAgICAgIHZhciBpc1JlcXVpcmVkID0gc21zRmllbGQgPyBzbXNGaWVsZC5yZXF1aXJlZCA6IGZhbHNlOwogICAgICAgIHZhciBzaG91bGRBcHBlbmRDb3VudHJ5Q29kZSA9IHNtc05vdFJlcXVpcmVkUmVtb3ZlQ291bnRyeUNvZGVFbmFibGVkID8gaXNSZXF1aXJlZCA6IHRydWU7CiAgICAgICAgCiAgICAgICAgdmFyIHBob25lSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWNlLScgKyBmaWVsZE5hbWUpOwogICAgICAgIGlmIChwaG9uZUlucHV0ICYmIHNlbGVjdGVkUHJvZ3JhbS5jb3VudHJ5Q2FsbGluZ0NvZGUgJiYgc2hvdWxkQXBwZW5kQ291bnRyeUNvZGUpIHsKICAgICAgICAgIHBob25lSW5wdXQudmFsdWUgPSBzZWxlY3RlZFByb2dyYW0uY291bnRyeUNhbGxpbmdDb2RlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICB1cGRhdGVTbXNMZWdhbFRleHQoc2VsZWN0ZWRDb3VudHJ5LCBmaWVsZE5hbWUpOwogICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyKHNlbGVjdGVkQ291bnRyeSwgZmllbGROYW1lKTsKICAgICAgICB1cGRhdGVDb3VudHJ5Q29kZUluc3RydWN0aW9uKHNlbGVjdGVkQ291bnRyeSwgZmllbGROYW1lKTsKICAgICAgfSk7CiAgICB9CgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgICBjb25zdCBzbXNQaG9uZUZpZWxkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF49ImNvdW50cnktc2VsZWN0LSJdJyk7CiAgICAgIAogICAgICBzbXNQaG9uZUZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGRyb3Bkb3duKSB7CiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZHJvcGRvd24\/LmlkLnJlcGxhY2UoJ2NvdW50cnktc2VsZWN0LScsICcnKTsKICAgICAgICBpbml0aWFsaXplU21zUGhvbmVEcm9wZG93bihmaWVsZE5hbWUpOwogICAgICB9KTsKICAgIH0pOwogICAgPC9zY3JpcHQ+PC9kaXY+dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckYmQ4ZGFmZGYtN2YxYy00NGYwLWJhMWEtMDlmZjgyMzk0OGU4eHe\/ATxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3Vpc29mdHdhcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIwLzA1L1NjcmVlbi1TaG90LTIwMjAtMDUtMjYtYXQtMTIuMDYuNTYtUE0tMTAyNHg1MC5wbmciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtNDIxIi8+PC9maWd1cmU+dwpjb3JlL2ltYWdld2NodHRwczovL3Vpc29mdHdhcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIwLzA1L1NjcmVlbi1TaG90LTIwMjAtMDUtMjYtYXQtMTIuMDYuNTYtUE0tMTAyNHg1MC5wbmd3AH2lBncFbGFyZ2V3BG5vbmV2AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54eXl3BG5vbmV5dyQ3NjNkNjE2ZS03YTIwLTRhZGMtYTI5NC05YTVkODJjMTk2OWN4d0Q8aDIgaWQ9Imgtc3VwcG9ydC10aWVycyIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlN1cHBvcnQgVGllcnM8L2gyPncMY29yZS9oZWFkaW5nfQJ3D2gtc3VwcG9ydC10aWVyc3YDEHJlc3RyaWN0aW9uX3R5cGV3B2V4Y2x1ZGUSc2VsZWN0ZWRfbGFuZ3VhZ2VzdQAKcGFuZWxfb3Blbnh3AHcAeXl3JDM3NzI4YWNlLWRhMDItNGQzZC1iZWNhLTM3OTBkYmE4MmZiN3h3sAE8cD5XZSBhcmUgd29ya2luZyB0byBkZWZpbmUgdGhlc2UgZm9yIHRoZSBwcm9qZWN0IGFuZCBwaWNrIGEgcGxhdGZvcm0uIEN1cnJlbnRseSBleHBsb3JpbmcgdGhlc2Ugb3B0aW9ucy4gSWYgeW91IGhhdmUgb3RoZXIgaWRlYXMsIHBsZWFzZSBlbWFpbCB1cyBhdCBzdXBwb3J0QHVpc29mdHdhcmUuY29tPC9wPncOY29yZS9wYXJhZ3JhcGh5dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHcAdwB5eXckOGFmN2YzMWQtMmVmOS00ODc5LThlZjEtYWYyN2I3M2Q5N2U1eHctPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKCgoKCgoKCgoKCjwvb2w+dwljb3JlL2xpc3R4dwB2AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dwB3AHl5dyQzOGZhYTViOS05YTE3LTQxZDYtODlhMS00OWE1ZjdkYTZiMGZ4dx48bGk+TWV0YVN5bnRoIFBsdWdpbiBvbmx5PC9saT53DmNvcmUvbGlzdC1pdGVtdgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckNTk1ZGIyMGEtNmY4NS00MWRjLTk0ZmEtMTJjZGQ0MDI5ODRieHcbPGxpPk1ldGFTeW50aCBhcHAgb25seTwvbGk+dw5jb3JlL2xpc3QtaXRlbXYDEHJlc3RyaWN0aW9uX3R5cGV3B2V4Y2x1ZGUSc2VsZWN0ZWRfbGFuZ3VhZ2VzdQAKcGFuZWxfb3Blbnh3JDk0MzJjNTFhLWNiMDgtNDBjOC04ZThlLTIxZTEyYTQ4YmRjNnh3EzxsaT5QbHVnaW4rQXBwPC9saT53DmNvcmUvbGlzdC1pdGVtdgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckMTBmYTA3OTktYjcyMi00YmUzLTgwZTYtZWUxNWZiMGVkMmJleHciPGxpPkFkZCAxOjEgVHJhaW5pbmcgU2Vzc2lvbnM8L2xpPncOY29yZS9saXN0LWl0ZW12AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dyRhYzE0ZDg1Ny1mZGZhLTQxY2UtOTJmMy1mN2NjODkxMmZlNGZ4dxU8bGk+QWRkIE5ldyBCb29rPC9saT53DmNvcmUvbGlzdC1pdGVtdgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckZDcwOGZiMGQtMmUzZS00NGFmLThlNjYtMTcxZWJlZGY2Mjk5eHcUPGxpPkFkZCBULVNoaXJ0PC9saT53DmNvcmUvbGlzdC1pdGVtdgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHckZjdkMWMyYzktMmQ4YS00N2QxLWI0NTUtOGFhYmZiZmUyZDIzeHcuPGxpPkFkZCBWSVAgYWNjZXNzIHRvIGRldmVsb3BtZW50IGpvdXJuZXk8L2xpPncOY29yZS9saXN0LWl0ZW12AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dyQ2MzZmODk1Ni1jMmFiLTQ0ZWEtOWE5MC0yOTNkYTk4NGRiMjB4dyg8bGk+RWFybHkgYWNjZXNzIHRvIHNvZnR3YXJlIGJ1aWxkczwvbGk+dw5jb3JlL2xpc3QtaXRlbXYDEHJlc3RyaWN0aW9uX3R5cGV3B2V4Y2x1ZGUSc2VsZWN0ZWRfbGFuZ3VhZ2VzdQAKcGFuZWxfb3Blbnh3JDUyZTc3YzY4LTBjMjQtNDc1Ni05MmEwLWQyMGNjYTdiMjlkN3h3vwE8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48aW1nIHNyYz0iaHR0cHM6Ly91aXNvZnR3YXJlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMC8wNS9TY3JlZW4tU2hvdC0yMDIwLTA1LTI2LWF0LTEyLjA2LjU2LVBNLTEwMjR4NTAucG5nIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTQyMSIvPjwvZmlndXJlPncKY29yZS9pbWFnZXdjaHR0cHM6Ly91aXNvZnR3YXJlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMC8wNS9TY3JlZW4tU2hvdC0yMDIwLTA1LTI2LWF0LTEyLjA2LjU2LVBNLTEwMjR4NTAucG5ndwB9pQZ3BWxhcmdldwRub25ldgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHl5dwRub25leXckYmRiNDIwODEtMzgwZS00NWQwLTk2NDUtNjg4NWJiOWFlODUxeHdsPGgyIGlkPSJoLXRha2UtdGhlLW1ldGFzeW50aC13aW5kb3dzLXN1cnZleSIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlRha2UgdGhlIE1ldGFTeW50aCBXaW5kb3dzIFN1cnZleTwvaDI+dwxjb3JlL2hlYWRpbmd9AncjaC10YWtlLXRoZS1tZXRhc3ludGgtd2luZG93cy1zdXJ2ZXl2AxByZXN0cmljdGlvbl90eXBldwdleGNsdWRlEnNlbGVjdGVkX2xhbmd1YWdlc3UACnBhbmVsX29wZW54dwB3AHl5dyQ1MzU5YzlkYi00OWYyLTQzMzMtODg4My03MmI0NmFkZmUzMjl4d248cD5DbGljayBoZXJlOiA8YSBocmVmPSJodHRwczovL3d3dy5zdXJ2ZXltb25rZXkuY29tL3IvWUhLRktZWiI+aHR0cHM6Ly93d3cuc3VydmV5bW9ua2V5LmNvbS9yL1lIS0ZLWVo8L2E+PC9wPncOY29yZS9wYXJhZ3JhcGh5dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHcAdwB5eXckMWEyMjc3NmQtNDk2ZC00Mjc2LWEwYzEtMGU0ZmJhZmIwZjYzeHcHPHA+PC9wPncOY29yZS9wYXJhZ3JhcGh5dgMQcmVzdHJpY3Rpb25fdHlwZXcHZXhjbHVkZRJzZWxlY3RlZF9sYW5ndWFnZXN1AApwYW5lbF9vcGVueHcAdwB5eXtCeeIWbgdQAHtB5REBbCAAAHh4eHcdaC10YWtlLXRoZS1tZXRhc3ludGgtYy1zdXJ2ZXl3HmgtdGFrZS10aGUtbWV0YXN5bnRoLWNyLXN1cnZleXcfaC10YWtlLXRoZS1tZXRhc3ludGgtY3JvLXN1cnZleXcgaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvcy1zdXJ2ZXl3IWgtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXN1cnZleXcjaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvc3MtcC1zdXJ2ZXl3JGgtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXBsLXN1cnZleXclaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvc3MtcGxhLXN1cnZleXcmaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvc3MtcGxhdC1zdXJ2ZXl3J2gtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXBsYXRmLXN1cnZleXcoaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvc3MtcGxhdGZvLXN1cnZleXcpaC10YWtlLXRoZS1tZXRhc3ludGgtY3Jvc3MtcGxhdGZvci1zdXJ2ZXl3KmgtdGFrZS10aGUtbWV0YXN5bnRoLWNyb3NzLXBsYXRmb3JtLXN1cnZleRIAAuGWoMQKE7gCgAL34AKxAYwEBRwCAQK6BgYIAJEBAAEAAQABAAEAAgABAAEAAQABAAEAAQDTms27BAEA6fIC\",\"updateId\":738497395}","footnotes":""},"class_list":["post-10227","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Windows Apps - U&amp;I Software, LLC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/uisoftware.com\/it\/windows-apps\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Windows Apps\" \/>\n<meta property=\"og:description\" content=\"MetaSynth is coming to Windows\u2014and you hold the key. We\u2019ve completed code review and lined up our lead developer. Now, we just need you. We\u2019re bringing the full MetaSynth experience and a dedicated VST plugin of our legendary\u00a0Image Synth\u00a0sequencer to the PC. This is a &#8220;go\/no-go&#8221; moment. Join the list to cast your vote, track&hellip; Leggi tutto\" \/>\n<meta property=\"og:url\" content=\"https:\/\/uisoftware.com\/it\/windows-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"U&amp;I Software, LLC\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/uisoftware\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T12:54:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/uisoftware.com\/wp-content\/uploads\/2021\/02\/ImageSynth-w-Txt-High.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"875\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@UIsoftware\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/\",\"url\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/\",\"name\":\"Windows Apps - U&amp;I Software, LLC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/uisoftware.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1\",\"datePublished\":\"2026-05-06T04:01:31+00:00\",\"dateModified\":\"2026-05-13T12:54:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/uisoftware.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/uisoftware.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1\",\"width\":1400,\"height\":875},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/windows-apps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/uisoftware.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Windows Apps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#website\",\"url\":\"https:\\\/\\\/uisoftware.com\\\/\",\"name\":\"U&amp;I Software, LLC\",\"description\":\"Unique Applications for Artists and Musicians\",\"publisher\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/uisoftware.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#organization\",\"name\":\"U&I Software\",\"url\":\"https:\\\/\\\/uisoftware.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i2.wp.com\\\/uisoftware.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/UI_Software_Mark_Round_blue.png?fit=2169%2C2169&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i2.wp.com\\\/uisoftware.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/UI_Software_Mark_Round_blue.png?fit=2169%2C2169&ssl=1\",\"width\":2169,\"height\":2169,\"caption\":\"U&I Software\"},\"image\":{\"@id\":\"https:\\\/\\\/uisoftware.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/uisoftware\",\"https:\\\/\\\/x.com\\\/UIsoftware\",\"https:\\\/\\\/www.instagram.com\\\/uisoftware_\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/uisoftware\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/MetaSynth\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Applicazioni per Windows - U&amp;I Software, LLC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/uisoftware.com\/it\/windows-apps\/","og_locale":"it_IT","og_type":"article","og_title":"Windows Apps","og_description":"MetaSynth is coming to Windows\u2014and you hold the key. We\u2019ve completed code review and lined up our lead developer. Now, we just need you. We\u2019re bringing the full MetaSynth experience and a dedicated VST plugin of our legendary\u00a0Image Synth\u00a0sequencer to the PC. This is a &#8220;go\/no-go&#8221; moment. Join the list to cast your vote, track&hellip; Leggi tutto","og_url":"https:\/\/uisoftware.com\/it\/windows-apps\/","og_site_name":"U&amp;I Software, LLC","article_publisher":"https:\/\/www.facebook.com\/uisoftware","article_modified_time":"2026-05-13T12:54:34+00:00","og_image":[{"width":1400,"height":875,"url":"https:\/\/uisoftware.com\/wp-content\/uploads\/2021\/02\/ImageSynth-w-Txt-High.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@UIsoftware","twitter_misc":{"Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/uisoftware.com\/windows-apps\/","url":"https:\/\/uisoftware.com\/windows-apps\/","name":"Applicazioni per Windows - U&amp;I Software, LLC","isPartOf":{"@id":"https:\/\/uisoftware.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/uisoftware.com\/windows-apps\/#primaryimage"},"image":{"@id":"https:\/\/uisoftware.com\/windows-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2021\/02\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1","datePublished":"2026-05-06T04:01:31+00:00","dateModified":"2026-05-13T12:54:34+00:00","breadcrumb":{"@id":"https:\/\/uisoftware.com\/windows-apps\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/uisoftware.com\/windows-apps\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/uisoftware.com\/windows-apps\/#primaryimage","url":"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2021\/02\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1","contentUrl":"https:\/\/i0.wp.com\/uisoftware.com\/wp-content\/uploads\/2021\/02\/ImageSynth-w-Txt-High.jpg?fit=1400%2C875&ssl=1","width":1400,"height":875},{"@type":"BreadcrumbList","@id":"https:\/\/uisoftware.com\/windows-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/uisoftware.com\/"},{"@type":"ListItem","position":2,"name":"Windows Apps"}]},{"@type":"WebSite","@id":"https:\/\/uisoftware.com\/#website","url":"https:\/\/uisoftware.com\/","name":"U&amp;I Software, LLC","description":"Applicazioni uniche per artisti e musicisti","publisher":{"@id":"https:\/\/uisoftware.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/uisoftware.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/uisoftware.com\/#organization","name":"Software U&amp;I","url":"https:\/\/uisoftware.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/uisoftware.com\/#\/schema\/logo\/image\/","url":"https:\/\/i2.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/UI_Software_Mark_Round_blue.png?fit=2169%2C2169&ssl=1","contentUrl":"https:\/\/i2.wp.com\/uisoftware.com\/wp-content\/uploads\/2020\/05\/UI_Software_Mark_Round_blue.png?fit=2169%2C2169&ssl=1","width":2169,"height":2169,"caption":"U&I Software"},"image":{"@id":"https:\/\/uisoftware.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/uisoftware","https:\/\/x.com\/UIsoftware","https:\/\/www.instagram.com\/uisoftware_","https:\/\/www.youtube.com\/c\/uisoftware","https:\/\/en.wikipedia.org\/wiki\/MetaSynth"]}]}},"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PazsxF-2EX","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/pages\/10227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/users\/150113988"}],"replies":[{"embeddable":true,"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/comments?post=10227"}],"version-history":[{"count":14,"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/pages\/10227\/revisions"}],"predecessor-version":[{"id":10300,"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/pages\/10227\/revisions\/10300"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/media\/3088"}],"wp:attachment":[{"href":"https:\/\/uisoftware.com\/it\/wp-json\/wp\/v2\/media?parent=10227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}