From 592fd9d7bb7f3cbef83e604c7f24080ea6bd8917 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Thu, 17 Dec 2020 22:38:51 +0100 Subject: [PATCH] Add tweets plugin (#23) * Add support for tweets plugin --- .github/readme/imgs/plugin_tweets_secrets.png | Bin 0 -> 116527 bytes .github/workflows/workflow.yml | 241 +----------------- README.md | 98 ++++--- action.yml | 18 ++ action/dist/index.js | 6 +- action/index.mjs | 9 + package-lock.json | 70 ++--- package.json | 4 +- settings.example.json | 6 +- src/html/app.js | 2 + src/html/index.html | 9 +- src/metrics.mjs | 24 +- src/plugins/index.mjs | 2 + src/plugins/topics/index.mjs | 3 + src/plugins/tweets/index.mjs | 56 ++++ src/templates/classic/image.svg | 47 ++++ src/templates/classic/query.graphql | 1 + src/templates/classic/style.css | 20 ++ src/templates/common.mjs | 2 +- utils/build.mjs | 2 +- utils/workflow.yml | 8 + 21 files changed, 312 insertions(+), 316 deletions(-) create mode 100644 .github/readme/imgs/plugin_tweets_secrets.png create mode 100644 src/plugins/tweets/index.mjs diff --git a/.github/readme/imgs/plugin_tweets_secrets.png b/.github/readme/imgs/plugin_tweets_secrets.png new file mode 100644 index 0000000000000000000000000000000000000000..e152fcb91547e791d88bf709530a28ac37f0600e GIT binary patch literal 116527 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

MyFn)S7=#xBrV`a^p;Gn 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 z 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 literal 0 HcmV?d00001 diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index d66232f9..2820621e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -25,7 +25,7 @@ jobs: analyze: runs-on: ubuntu-latest - needs: ["test-master","test-latest"] + needs: ["test-master"] steps: - name: Checkout uses: actions/checkout@v2 @@ -281,27 +281,8 @@ jobs: plugin_projects: yes plugin_projects_limit: 2 - - test-latest: - needs: build - runs-on: ubuntu-latest - strategy: - matrix: - template: ["classic","terminal"] - steps: - - - name: ${{ matrix.template }} > Base - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: header, activity, community, repositories, metadata - plugins_errors_fatal: yes - - - name: ${{ matrix.template }} > Plugin > PageSpeed - uses: lowlighter/metrics@latest + - name: ${{ matrix.template }} > Plugin > Tweets + uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes @@ -309,218 +290,8 @@ jobs: template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes - plugin_pagespeed: yes - plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} - - - name: ${{ matrix.template }} > Plugin > PageSpeed (detailed) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_pagespeed: yes - plugin_pagespeed_detailed: yes - plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} - - - name: ${{ matrix.template }} > Plugin > Music (playlist - apple) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_music: yes - plugin_music_playlist: ${{ secrets.MUSIC_PLAYLIST_APPLE }} - - - name: ${{ matrix.template }} > Plugin > Music (playlist - spotify) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_music: yes - plugin_music_playlist: ${{ secrets.MUSIC_PLAYLIST_SPOTIFY }} - - - name: ${{ matrix.template }} > Plugin > Music (recent - spotify) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_music: yes - plugin_music_provider: spotify - plugin_music_token: ${{ secrets.SPOTIFY_TOKENS }} - - - name: ${{ matrix.template }} > Plugin > Posts (dev.to) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_posts: yes - plugin_posts_source: dev.to - - - name: ${{ matrix.template }} > Plugin > Isocalendar - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_isocalendar: yes - - - name: ${{ matrix.template }} > Plugin > Isocalendar (full year) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_isocalendar: yes - plugin_isocalendar_duration: full-year - - - name: ${{ matrix.template }} > Plugin > Habits - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_habits: yes - - - name: ${{ matrix.template }} > Plugin > Languages - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_languages: yes - - - name: ${{ matrix.template }} > Plugin > Follow-up - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_followup: yes - - - name: ${{ matrix.template }} > Plugin > Lines - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_lines: yes - - - name: ${{ matrix.template }} > Plugin > Traffic - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_traffic: yes - - - name: ${{ matrix.template }} > Plugin > Gists - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_gists: yes - - - name: ${{ matrix.template }} > Plugin > Topics (stars) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: stars - - - name: ${{ matrix.template }} > Plugin > Topics (activity) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: activity - - - name: ${{ matrix.template }} > Plugin > Topics (starred) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: starred - - - name: ${{ matrix.template }} > Plugin > Topics (random) - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: random - - - name: ${{ matrix.template }} > Plugin > Projects - uses: lowlighter/metrics@latest - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_projects: yes - plugin_projects_limit: 2 + plugin_tweets: yes + plugin_tweets_limit: 2 + plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }} \ No newline at end of file diff --git a/README.md b/README.md index afd03e1c..0decc6e8 100644 --- a/README.md +++ b/README.md @@ -100,13 +100,13 @@ But there's more with [plugins](https://github.com/lowlighter/metrics/tree/maste - 💡 Coding Habits plugin + 🐤 Tweets plugin ✒️ Recent posts plugin - - + + @@ -116,16 +116,20 @@ But there's more with [plugins](https://github.com/lowlighter/metrics/tree/maste + 💡 Coding Habits plugin 🎫 Gists plugin - + + + + + - @@ -847,12 +851,12 @@ Add the following to your workflow : ### 🧮 Traffic + ⚠️ This plugin requires a personal token with full repo scope. + The repositories *traffic* plugin displays the number of pages views across your repositories. ![Traffic plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.traffic.svg) - ⚠️ This plugin requires a personal token with full repo scope. -

💬 About @@ -874,6 +878,63 @@ Add the following to your workflow :
+### 🐤 Tweets + + 🚧 This plugin is available as pre-release on @master + +The recent *tweets* plugin displays your latest tweets of the [twitter](https://twitter.com) attached mentioned on your account : + +![Tweets plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.tweets.svg) + +
+💬 About + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_tweets: yes + plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }} +``` + +
+💬 Obtaining a twitter token + +To get a twitter token, you'll need to apply to the [developer program](https://apps.twitter.com). +It's a bit tedious, but it seems that requests are approved quite quickly. + +Create an app from your [developer dashboard](https://developer.twitter.com/en/portal/dashboard) and register your bearer token in your repository secrets. + +![Twitter token](.github/readme/imgs/plugin_tweets_secrets.png) + +
+ +
+ +### ✒️ Posts + +The recent *posts* plugin displays recent articles you wrote on an external source, like [dev.to](https://dev.to). + +![Posts plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.svg) + +
+💬 About + +Supported sources are : +* [dev.to](https://dev.to) + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_posts: yes + plugin_posts_source: ******** +``` + +
+ ### 💡 Habits The coding *habits* add deduced coding habits based on your recent activity, from up to 100 events. @@ -899,29 +960,6 @@ Add the following to your workflow : -### ✒️ Posts - -The recent *posts* plugin displays recent articles you wrote on an external source, like [dev.to](https://dev.to). - -![Posts plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.svg) - -
-💬 About - -Supported sources are : -* [dev.to](https://dev.to) - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_posts: yes - plugin_posts_source: ******** -``` - -
- ### 🎫 Gists The *gists* plugin displays your [gists](https://gist.github.com) metrics. diff --git a/action.yml b/action.yml index 3745feb4..31c45901 100644 --- a/action.yml +++ b/action.yml @@ -248,6 +248,24 @@ inputs: description: Number of active projects to display default: 4 + # Tweets plugin + # Enable it to display recent tweets of the twitter username attached to "user" + plugin_tweets: + description: Display recent tweets + default: no + + # Tweets API token (required when tweets plugin is enabled) + # See https://apps.twitter.com for more informations + plugin_tweets_token: + description: Twitter bearer token + default: "" + + # Number of tweets to display + # Between 1 and 10 + plugin_tweets_limit: + description: Number of tweets to display + default: 2 + # Enable debug mode # Ensure you correctly put all sensitive informations in your repository secrets before ! debug: diff --git a/action/dist/index.js b/action/dist/index.js index 125eb3b0..6ee6d573 100644 --- a/action/dist/index.js +++ b/action/dist/index.js @@ -1,4 +1,4 @@ -module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_Stringprototype=String.prototype,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_Mathround=Math.round,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathceil=Math.ceil,_Mathfloor=Math.floor,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={75935:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a={templates:{},settings:{},statics:r.ab+"html",node_modules:f.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),h.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await h.promises.readFile(f.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),a.settings.templates||(a.settings.templates={default:"classic",enabled:[]}),a.settings.plugins||(a.settings.plugins={}),a.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},a.settings.debug&&t(a.settings),t(`metrics/setup > load package.json`),h.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await h.promises.readFile(f.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.8.0",author:"lowlighter"}),h.existsSync(r.ab+"templates"))for(const e of await h.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/query.graphql`,`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`],[o,i,s,l]=await Promise.all(r.map(async e=>`${await h.promises.readFile(f.resolve(e))}`));a.templates[e]={query:o,image:i,style:s,fonts:l},t(`metrics/setup > load template [${e}] > success`),a.settings.debug&&Object.defineProperty(a.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o,i]=r.map(e=>`${h.readFileSync(f.resolve(e))}`);return t(`metrics/setup > reload template [${e}] > success`),{query:n,image:a,style:o,fonts:i}}})}else t(`metrics/setup > load templates from build`),a.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGlzSGlyZWFibGVcclxuICAgIGdpc3RzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzKGxhc3Q6ICRyZXBvc2l0b3JpZXMsIGlzRm9yazogZmFsc2UsIG93bmVyQWZmaWxpYXRpb25zOiBPV05FUikge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICAgIHRvdGFsRGlza1VzYWdlXHJcbiAgICAgIG5vZGVzIHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgd2F0Y2hlcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBzdGFyZ2F6ZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFuZ3VhZ2VzKGZpcnN0OiA0KSB7XHJcbiAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgIHNpemVcclxuICAgICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX29wZW46IGlzc3VlcyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX2Nsb3NlZDogaXNzdWVzKHN0YXRlczogQ0xPU0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX29wZW46IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfbWVyZ2VkOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBNRVJHRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVsZWFzZXMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBmb3JrQ291bnRcclxuICAgICAgICBsaWNlbnNlSW5mbyB7XHJcbiAgICAgICAgICBzcGR4SWRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHBhY2thZ2VzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3RhcnJlZFJlcG9zaXRvcmllcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHdhdGNoaW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNTcG9uc29yIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNNYWludGFpbmVyIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgY29udHJpYnV0aW9uc0NvbGxlY3Rpb24ge1xyXG4gICAgICB0b3RhbFJlcG9zaXRvcmllc1dpdGhDb250cmlidXRlZENvbW1pdHNcclxuICAgICAgdG90YWxDb21taXRDb250cmlidXRpb25zXHJcbiAgICAgIHJlc3RyaWN0ZWRDb250cmlidXRpb25zQ291bnRcclxuICAgICAgdG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnNcclxuICAgIH1cclxuICAgIGNhbGVuZGFyOmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uKGZyb206ICRjYWxlbmRhci5mcm9tLCB0bzogJGNhbGVuZGFyLnRvKSB7XHJcbiAgICAgIGNvbnRyaWJ1dGlvbkNhbGVuZGFyIHtcclxuICAgICAgICB3ZWVrcyB7XHJcbiAgICAgICAgICBjb250cmlidXRpb25EYXlzIHtcclxuICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8ge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dlcnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBpc3N1ZUNvbW1lbnRzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgb3JnYW5pemF0aW9ucyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiaW1hZ2UiOiI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ4MFwiIGhlaWdodD1cIjwlPSAxMlxyXG4gICsgKCEhYmFzZS5oZWFkZXIpKjgwICsgKHVzZXIuaXNIaXJlYWJsZSkqMTZcclxuICArICghIWJhc2UubWV0YWRhdGEpKjM4XHJcbiAgKyAoKCEhYmFzZS5hY3Rpdml0eSl8fCghIWJhc2UuY29tbXVuaXR5KSkqMTI4XHJcbiAgKyAoISFiYXNlLnJlcG9zaXRvcmllcykqMTA4XHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKigoISFwbHVnaW5zLnRyYWZmaWMpfHwoISFwbHVnaW5zLmxpbmVzKSkpKjE2XHJcbiAgKyAoISFwbHVnaW5zLmZvbGxvd3VwKSo2OFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjEyNiArIChwbHVnaW5zLnBhZ2VzcGVlZD8uZGV0YWlsZWQgPz8gMCkqNioyMFxyXG4gICsgKCEhcGx1Z2lucy5oYWJpdHMpKjY4XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqOTZcclxuICArICghIXBsdWdpbnMubXVzaWMpKjY0ICsgKHBsdWdpbnMubXVzaWM/LnRyYWNrcz8ubGVuZ3RoID8gMTQrTWF0aC5tYXgoMCwgcGx1Z2lucy5tdXNpYy50cmFja3MubGVuZ3RoLTEpKjM2IDogMClcclxuICArICghIXBsdWdpbnMucG9zdHMpKjY0ICsgKHBsdWdpbnMucG9zdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo0MFxyXG4gICsgKCEhcGx1Z2lucy5pc29jYWxlbmRhcikqMTkyICsgKHBsdWdpbnMuaXNvY2FsZW5kYXI/LmR1cmF0aW9uID09PSAnZnVsbC15ZWFyJykqMTAwXHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy50b3BpY3MpKjE2MFxyXG4gICsgKCEhcGx1Z2lucy5wcm9qZWN0cykqMjIgKyAocGx1Z2lucy5wcm9qZWN0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjYwXHJcbiAgKyBNYXRoLm1heCgwLCAoKCghIWJhc2UubWV0YWRhdGEpKyghIWJhc2UuaGVhZGVyKSsoKCEhYmFzZS5hY3Rpdml0eSl8fCghIWJhc2UuY29tbXVuaXR5KSkrKCEhYmFzZS5yZXBvc2l0b3JpZXMpKygoISFwbHVnaW5zLmhhYml0cykpKyghIXBsdWdpbnMucGFnZXNwZWVkKSsoISFwbHVnaW5zLmxhbmd1YWdlcykrKCEhcGx1Z2lucy5tdXNpYykrKCEhcGx1Z2lucy5wb3N0cykrKCEhcGx1Z2lucy5pc29jYWxlbmRhcikrKCEhcGx1Z2lucy5naXN0cykrKCEhcGx1Z2lucy50b3BpY3MpKyghIXBsdWdpbnMucHJvamVjdHMpKS0xKSkqNFxyXG4lPlwiPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UuaGVhZGVyKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDEgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiYXZhdGFyXCIgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBjb21wdXRlZC5hdmF0YXIgJT5cIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiAvPlxyXG4gICAgICAgICAgICA8c3Bhbj48JT0gdXNlci5uYW1lIHx8IHVzZXIubG9naW4gJT48L3NwYW4+XHJcbiAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgRm9sbG93ZWQgYnkgPCU9IHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHVzZXIuaXNIaXJlYWJsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhpcmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuNzUgMEExLjc1IDEuNzUgMCAwMDUgMS43NVYzSDEuNzVBMS43NSAxLjc1IDAgMDAwIDQuNzV2OC41QzAgMTQuMjE2Ljc4NCAxNSAxLjc1IDE1aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxMy4yNXYtOC41QTEuNzUgMS43NSAwIDAwMTQuMjUgM0gxMVYxLjc1QTEuNzUgMS43NSAwIDAwOS4yNSAwaC0yLjV6TTkuNSAzVjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtMi41YS4yNS4yNSAwIDAwLS4yNS4yNVYzaDN6TTUgNC41SDEuNzVhLjI1LjI1IDAgMDAtLjI1LjI1VjZhMiAyIDAgMDAyIDJoOWEyIDIgMCAwMDItMlY0Ljc1YS4yNS4yNSAwIDAwLS4yNS0uMjVINXptLTEuNSA1YTMuNDg0IDMuNDg0IDAgMDEtMi0uNjI3djQuMzc3YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWOC44NzNhMy40ODQgMy40ODQgMCAwMS0yIC42MjdoLTl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBBdmFpbGFibGUgZm9yIGhpcmUgIVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjYWxlbmRhclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+IDExXCIgd2lkdGg9XCI8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImRheVwiIHg9XCI8JT0geCoxNSAlPlwiIHk9XCIwXCIgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjExXCIgZmlsbD1cIjwlPSBjb2xvciAlPlwiIHJ4PVwiMlwiIHJ5PVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xIDIuNUEyLjUgMi41IDAgMDEzLjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMFYxLjVoLThhMSAxIDAgMDAtMSAxdjYuNzA4QTIuNDkyIDIuNDkyIDAgMDEzLjUgOWgzLjI1YS43NS43NSAwIDAxMCAxLjVIMy41YTEgMSAwIDEwMCAyaDUuNzVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVBMi41IDIuNSAwIDAxMSAxMS41di05em0xMy4yMyA3Ljc5YS43NS43NSAwIDAwMS4wNi0xLjA2bC0yLjUwNS0yLjUwNWEuNzUuNzUgMCAwMC0xLjA2IDBMOS4yMiA5LjIyOWEuNzUuNzUgMCAwMDEuMDYgMS4wNjFsMS4yMjUtMS4yMjR2Ni4xODRhLjc1Ljc1IDAgMDAxLjUgMFY5LjA2NmwxLjIyNCAxLjIyNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBDb250cmlidXRlZCB0byA8JT0gdXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8JSBpZiAoYmFzZS5hY3Rpdml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxLjc1YS43NS43NSAwIDAwLTEuNSAwdjEyLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNC41YS43NS43NSAwIDAwMC0xLjVIMS41VjEuNzV6bTE0LjI4IDIuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDEwIDcuOTQgNy41MyA1LjQ3YS43NS43NSAwIDAwLTEuMDYgMEwzLjIyIDguNzJhLjc1Ljc1IDAgMDAxLjA2IDEuMDZMNyA3LjA2bDIuNDcgMi40N2EuNzUuNzUgMCAwMDEuMDYgMGw1LjI1LTUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEFjdGl2aXR5XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMC41IDcuNzVhMi41IDIuNSAwIDExLTUgMCAyLjUgMi41IDAgMDE1IDB6bTEuNDMuNzVhNC4wMDIgNC4wMDIgMCAwMS03Ljg2IDBILjc1YS43NS43NSAwIDExMC0xLjVoMy4zMmE0LjAwMSA0LjAwMSAwIDAxNy44NiAwaDMuMzJhLjc1Ljc1IDAgMTEwIDEuNWgtMy4zMnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmNvbW1pdHMgJT4gQ29tbWl0PCU9IHMoY29tcHV0ZWQuY29tbWl0cykgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1djcuNzM2YS43NS43NSAwIDEwMS41IDBWMS43NUExLjc1IDEuNzUgMCAwMDExLjI1IDBoLTguNUExLjc1IDEuNzUgMCAwMDEgMS43NXYxMS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMy4xN2EuNzUuNzUgMCAwMDAtMS41SDIuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek00Ljc1IDRhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41ek00IDcuNzVBLjc1Ljc1IDAgMDE0Ljc1IDdoMmEuNzUuNzUgMCAwMTAgMS41aC0yQS43NS43NSAwIDAxNCA3Ljc1em0xMS43NzQgMy41MzdhLjc1Ljc1IDAgMDAtMS4wNDgtMS4wNzRMMTAuNyAxNC4xNDUgOS4yODEgMTIuNzJhLjc1Ljc1IDAgMDAtMS4wNjIgMS4wNThsMS45NDMgMS45NWEuNzUuNzUgMCAwMDEuMDU1LjAwOGw0LjU1Ny00LjQ1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zKSAlPiByZXZpZXdlZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMTc3IDMuMDczTDkuNTczLjY3N0EuMjUuMjUgMCAwMTEwIC44NTR2NC43OTJhLjI1LjI1IDAgMDEtLjQyNy4xNzdMNy4xNzcgMy40MjdhLjI1LjI1IDAgMDEwLS4zNTR6TTMuNzUgMi41YS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41em0tMi4yNS43NWEyLjI1IDIuMjUgMCAxMTMgMi4xMjJ2NS4yNTZhMi4yNTEgMi4yNTEgMCAxMS0xLjUgMFY1LjM3MkEyLjI1IDIuMjUgMCAwMTEuNSAzLjI1ek0xMSAyLjVoLTFWNGgxYTEgMSAwIDAxMSAxdjUuNjI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY1QTIuNSAyLjUgMCAwMDExIDIuNXptMSAxMC4yNWEuNzUuNzUgMCAxMTEuNSAwIC43NS43NSAwIDAxLTEuNSAwek0zLjc1IDEyYS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucyAlPiBJc3N1ZTwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg0LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgyLjc1ek0xIDIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWgxMC41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTJIOS4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTQgMTMuNTQzVjEySDIuNzVBMS43NSAxLjc1IDAgMDExIDEwLjI1di03LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCAlPiBpc3N1ZSBjb21tZW50PCU9IHModXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSBpZiAoYmFzZS5jb21tdW5pdHkpIHsgJT5cclxuICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjMyNiAxLjk3M2ExLjIgMS4yIDAgMDExLjQ5LS44MzJjLjM4Ny4xMTIuOTc3LjMwNyAxLjU3NS42MDIuNTg2LjI5MSAxLjI0My43MSAxLjcgMS4yOTYuMDIyLjAyNy4wNDIuMDU2LjA2MS4wODRBMTMuMjIgMTMuMjIgMCAwMTggM2MuNjcgMCAxLjI4OS4wMzcgMS44NjEuMTA4bC4wNTEtLjA3Yy40NTctLjU4NiAxLjExNC0xLjAwNCAxLjctMS4yOTVhOS42NTQgOS42NTQgMCAwMTEuNTc2LS42MDIgMS4yIDEuMiAwIDAxMS40OS44MzJjLjE0LjQ5My4zNTYgMS4zNDcuNDc5IDIuMjkuMDc5LjYwNC4xMjMgMS4yOC4wNyAxLjkzNi41NDEuOTc3Ljc3MyAyLjExLjc3MyAzLjMwMUMxNiAxMyAxNC41IDE1IDggMTVzLTgtMi04LTUuNWMwLTEuMDM0LjIzOC0yLjEyOC43OTUtMy4xMTctLjA4LS43MTItLjAzNC0xLjQ2LjA1Mi0yLjEyLjEyMi0uOTQzLjM0LTEuNzk3LjQ3OS0yLjI5ek04IDEzLjA2NWM2IDAgNi41LTIgNi00LjI3QzEzLjM2MyA1LjkwNSAxMS4yNSA1IDggNXMtNS4zNjMuOTA0LTYgMy43OTZjLS41IDIuMjcgMCA0LjI3IDYgNC4yN3pcIj48L3BhdGg+PHBhdGggZD1cIk00IDhhMSAxIDAgMDEyIDB2MWExIDEgMCAwMS0yIDBWOHptMi4wNzggMi40OTJjLS4wODMtLjI2NC4xNDYtLjQ5Mi40MjItLjQ5MmgzYy4yNzYgMCAuNTA1LjIyOC40MjIuNDkyQzkuNjcgMTEuMzA0IDguODM0IDEyIDggMTJjLS44MzQgMC0xLjY2OS0uNjk2LTEuOTIyLTEuNTA4ek0xMCA4YTEgMSAwIDExMiAwdjFhMSAxIDAgMTEtMiAwVjh6XCI+PC9wYXRoPjwvc3ZnPiAgICAgICAgICAgICAgQ29tbXVuaXR5IHN0YXRzXHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgMTQuMjVjMCAuMTM4LjExMi4yNS4yNS4yNUg0di0xLjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS4yNWgyLjI1YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTguNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNXpNMS43NSAxNkExLjc1IDEuNzUgMCAwMTAgMTQuMjVWMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDguNUMxMS4yMTYgMCAxMiAuNzg0IDEyIDEuNzV2MTIuNWMwIC4wODUtLjAwNi4xNjgtLjAxOC4yNWgyLjI2OGEuMjUuMjUgMCAwMC4yNS0uMjVWOC4yODVhLjI1LjI1IDAgMDAtLjExMS0uMjA4bC0xLjA1NS0uNzAzYS43NS43NSAwIDExLjgzMi0xLjI0OGwxLjA1NS43MDNjLjQ4Ny4zMjUuNzc5Ljg3MS43NzkgMS40NTZ2NS45NjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNmgtMy41YS43NS43NSAwIDAxLS4xOTctLjAyNmMtLjA5OS4wMTctLjIuMDI2LS4zMDMuMDI2aC0zYS43NS43NSAwIDAxLS43NS0uNzVWMTRoLTF2MS4yNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTN6TTMgMy43NUEuNzUuNzUgMCAwMTMuNzUgM2guNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgMy43NXpNMy43NSA2YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTMgOS43NUEuNzUuNzUgMCAwMTMuNzUgOWguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgOS43NXpNNy43NSA5YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTcgNi43NUEuNzUuNzUgMCAwMTcuNzUgNmguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTcgNi43NXpNNy43NSAzYS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIE1lbWJlciBvZiA8JT0gdXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQgJT4gb3JnYW5pemF0aW9uPCU9IHModXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBGb2xsb3dpbmcgPCU9IHVzZXIuZm9sbG93aW5nLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3BvbnNvcmluZyA8JT0gdXNlci5zcG9uc29yc2hpcHNBc1Nwb25zb3IudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFN0YXJyZWQgPCU9IHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjY3OSA3LjkzMmMuNDEyLS42MjEgMS4yNDItMS43NSAyLjM2Ni0yLjcxN0M1LjE3NSA0LjI0MiA2LjUyNyAzLjUgOCAzLjVjMS40NzMgMCAyLjgyNC43NDIgMy45NTUgMS43MTUgMS4xMjQuOTY3IDEuOTU0IDIuMDk2IDIuMzY2IDIuNzE3YS4xMTkuMTE5IDAgMDEwIC4xMzZjLS40MTIuNjIxLTEuMjQyIDEuNzUtMi4zNjYgMi43MTdDMTAuODI1IDExLjc1OCA5LjQ3MyAxMi41IDggMTIuNWMtMS40NzMgMC0yLjgyNC0uNzQyLTMuOTU1LTEuNzE1QzIuOTIgOS44MTggMi4wOSA4LjY5IDEuNjc5IDguMDY4YS4xMTkuMTE5IDAgMDEwLS4xMzZ6TTggMmMtMS45ODEgMC0zLjY3Ljk5Mi00LjkzMyAyLjA3OEMxLjc5NyA1LjE2OS44OCA2LjQyMy40MyA3LjFhMS42MTkgMS42MTkgMCAwMDAgMS43OThjLjQ1LjY3OCAxLjM2NyAxLjkzMiAyLjYzNyAzLjAyNEM0LjMyOSAxMy4wMDggNi4wMTkgMTQgOCAxNGMxLjk4MSAwIDMuNjctLjk5MiA0LjkzMy0yLjA3OCAxLjI3LTEuMDkxIDIuMTg3LTIuMzQ1IDIuNjM3LTMuMDIzYTEuNjE5IDEuNjE5IDAgMDAwLTEuNzk4Yy0uNDUtLjY3OC0xLjM2Ny0xLjkzMi0yLjYzNy0zLjAyM0MxMS42NzEgMi45OTIgOS45ODEgMiA4IDJ6bTAgOGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgV2F0Y2hpbmcgPCU9IHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UucmVwb3NpdG9yaWVzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMiAyLjVBMi41IDIuNSAwIDAxNC41IDBoOC43NWEuNzUuNzUgMCAwMS43NS43NXYxMi41YS43NS43NSAwIDAxLS43NS43NWgtMi41YS43NS43NSAwIDExMC0xLjVoMS43NXYtMmgtOGExIDEgMCAwMC0uNzE0IDEuNy43NS43NSAwIDAxLTEuMDcyIDEuMDVBMi40OTUgMi40OTUgMCAwMTIgMTEuNXYtOXptMTAuNS0xVjloLThjLS4zNTYgMC0uNjk0LjA3NC0xIC4yMDhWMi41YTEgMSAwIDAxMS0xaDh6TTUgMTIuMjV2My4yNWEuMjUuMjUgMCAwMC40LjJsMS40NS0xLjA4N2EuMjUuMjUgMCAwMS4zIDBMOC42IDE1LjdhLjI1LjI1IDAgMDAuNC0uMnYtMy4yNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMDAtLjI1LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gUmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljc1Ljc1YS43NS43NSAwIDAwLTEuNSAwVjJoLS45ODRjLS4zMDUgMC0uNjA0LjA4LS44NjkuMjNsLTEuMjg4LjczN0EuMjUuMjUgMCAwMTMuOTg0IDNIMS43NWEuNzUuNzUgMCAwMDAgMS41aC40MjhMLjA2NiA5LjE5MmEuNzUuNzUgMCAwMC4xNTQuODM4bC41My0uNTMtLjUzLjUzdi4wMDFsLjAwMi4wMDIuMDAyLjAwMi4wMDYuMDA2LjAxNi4wMTUuMDQ1LjA0YTMuNTE0IDMuNTE0IDAgMDAuNjg2LjQ1QTQuNDkyIDQuNDkyIDAgMDAzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTE1IDMuNTE1IDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMTYtLjAxNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMkw1LjI1IDkuNWwuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMy44MjIgNC41aC4xNjJjLjMwNSAwIC42MDQtLjA4Ljg2OS0uMjNsMS4yODktLjczN2EuMjUuMjUgMCAwMS4xMjQtLjAzM2guOTg0VjEzaC0yLjVhLjc1Ljc1IDAgMDAwIDEuNWg2LjVhLjc1Ljc1IDAgMDAwLTEuNWgtMi41VjMuNWguOTg0YS4yNS4yNSAwIDAxLjEyNC4wMzNsMS4yOS43MzZjLjI2NC4xNTIuNTYzLjIzMS44NjguMjMxaC4xNjJsLTIuMTEyIDQuNjkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTcgMy41MTcgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDEzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTEyIDMuNTEyIDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMS0uMDEuMDA2LS4wMDUuMDA2LS4wMDYuMDAyLS4wMDIuMDAxLS4wMDItLjUyOS0uNTMxLjUzLjUzYS43NS43NSAwIDAwLjE1NC0uODM4TDEzLjgyMyA0LjVoLjQyN2EuNzUuNzUgMCAwMDAtMS41aC0yLjIzNGEuMjUuMjUgMCAwMS0uMTI0LS4wMzNsLTEuMjktLjczNkExLjc1IDEuNzUgMCAwMDkuNzM1IDJIOC43NVYuNzV6TTEuNjk1IDkuMjI3Yy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDMgNi4zMjdsLTEuMzA1IDIuOXptMTAgMGMuMjg1LjEzNS43MTguMjczIDEuMzA1LjI3M3MxLjAyLS4xMzggMS4zMDUtLjI3M0wxMyA2LjMyN2wtMS4zMDUgMi45elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgUHJlZmVyIDwlPSBjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZSAlPiBsaWNlbnNlXHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBObyBsaWNlbnNlIHByZWZlcmVuY2VcclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgNy43NzVWMi43NWEuMjUuMjUgMCAwMS4yNS0uMjVoNS4wMjVhLjI1LjI1IDAgMDEuMTc3LjA3M2w2LjI1IDYuMjVhLjI1LjI1IDAgMDEwIC4zNTRsLTUuMDI1IDUuMDI1YS4yNS4yNSAwIDAxLS4zNTQgMGwtNi4yNS02LjI1YS4yNS4yNSAwIDAxLS4wNzMtLjE3N3ptLTEuNSAwVjIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWg1LjAyNWMuNDY0IDAgLjkxLjE4NCAxLjIzOC41MTNsNi4yNSA2LjI1YTEuNzUgMS43NSAwIDAxMCAyLjQ3NGwtNS4wMjYgNS4wMjZhMS43NSAxLjc1IDAgMDEtMi40NzQgMGwtNi4yNS02LjI1QTEuNzUgMS43NSAwIDAxMSA3Ljc3NXpNNiA1YTEgMSAwIDEwMCAyIDEgMSAwIDAwMC0yelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMucmVsZWFzZXMgJT4gUmVsZWFzZTwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljg3OC4zOTJhMS43NSAxLjc1IDAgMDAtMS43NTYgMGwtNS4yNSAzLjA0NUExLjc1IDEuNzUgMCAwMDEgNC45NTF2Ni4wOThjMCAuNjI0LjMzMiAxLjIuODcyIDEuNTE0bDUuMjUgMy4wNDVhMS43NSAxLjc1IDAgMDAxLjc1NiAwbDUuMjUtMy4wNDVjLjU0LS4zMTMuODcyLS44OS44NzItMS41MTRWNC45NTFjMC0uNjI0LS4zMzItMS4yLS44NzItMS41MTRMOC44NzguMzkyek03Ljg3NSAxLjY5YS4yNS4yNSAwIDAxLjI1IDBsNC42MyAyLjY4NUw4IDcuMTMzIDMuMjQ1IDQuMzc1bDQuNjMtMi42ODV6TTIuNSA1LjY3N3Y1LjM3MmMwIC4wOS4wNDcuMTcxLjEyNS4yMTZsNC42MjUgMi42ODNWOC40MzJMMi41IDUuNjc3em02LjI1IDguMjcxbDQuNjI1LTIuNjgzYS4yNS4yNSAwIDAwLjEyNS0uMjE2VjUuNjc3TDguNzUgOC40MzJ2NS41MTZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHVzZXIucGFja2FnZXMudG90YWxDb3VudCAlPiBQYWNrYWdlPCU9IHModXNlci5wYWNrYWdlcy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMy41YzAtLjEzMy4wNTgtLjMxOC4yODItLjU1LjIyNy0uMjM3LjU5Mi0uNDg0IDEuMS0uNzA4QzQuODk5IDEuNzk1IDYuMzU0IDEuNSA4IDEuNWMxLjY0NyAwIDMuMTAyLjI5NSA0LjExNy43NDIuNTEuMjI0Ljg3NC40NyAxLjEwMS43MDcuMjI0LjIzMy4yODIuNDE4LjI4Mi41NTEgMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgNS4yMDUgOS42NDYgNS41IDggNS41Yy0xLjY0NyAwLTMuMTAyLS4yOTUtNC4xMTctLjc0Mi0uNTEtLjIyNC0uODc0LS40Ny0xLjEwMS0uNzA3LS4yMjQtLjIzMy0uMjgyLS40MTgtLjI4Mi0uNTUxek0xIDMuNWMwLS42MjYuMjkyLTEuMTY1LjctMS41OS40MDYtLjQyMi45NTYtLjc2NyAxLjU3OS0xLjA0MUM0LjUyNS4zMiA2LjE5NSAwIDggMGMxLjgwNSAwIDMuNDc1LjMyIDQuNzIyLjg2OS42MjIuMjc0IDEuMTcyLjYyIDEuNTc4IDEuMDQuNDA4LjQyNi43Ljk2NS43IDEuNTkxdjljMCAuNjI2LS4yOTIgMS4xNjUtLjcgMS41OS0uNDA2LjQyMi0uOTU2Ljc2Ny0xLjU3OSAxLjA0MUMxMS40NzYgMTUuNjggOS44MDYgMTYgOCAxNmMtMS44MDUgMC0zLjQ3NS0uMzItNC43MjEtLjg2OS0uNjIzLS4yNzQtMS4xNzMtLjYyLTEuNTc5LTEuMDQtLjQwOC0uNDI2LS43LS45NjUtLjctMS41OTF2LTl6TTIuNSA4VjUuNzI0Yy4yNDEuMTUuNTAzLjI4Ni43NzkuNDA3QzQuNTI1IDYuNjggNi4xOTUgNyA4IDdjMS44MDUgMCAzLjQ3NS0uMzIgNC43MjItLjg2OS4yNzUtLjEyMS41MzctLjI1Ny43NzgtLjQwN1Y4YzAgLjEzMy0uMDU4LjMxOC0uMjgyLjU1LS4yMjcuMjM3LS41OTIuNDg0LTEuMS43MDhDMTEuMTAxIDkuNzA1IDkuNjQ2IDEwIDggMTBjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDdDMi41NTggOC4zMTggMi41IDguMTMzIDIuNSA4em0wIDIuMjI1VjEyLjVjMCAuMTMzLjA1OC4zMTguMjgyLjU1LjIyNy4yMzcuNTkyLjQ4NCAxLjEuNzA4IDEuMDE2LjQ0NyAyLjQ3MS43NDIgNC4xMTguNzQyIDEuNjQ3IDAgMy4xMDItLjI5NSA0LjExNy0uNzQyLjUxLS4yMjQuODc0LS40NyAxLjEwMS0uNzA3LjIyNC0uMjMzLjI4Mi0uNDE4LjI4Mi0uNTUxdi0yLjI3NWMtLjI0MS4xNS0uNTAzLjI4NS0uNzc4LjQwNi0xLjI0Ny41NDktMi45MTcuODY5LTQuNzIyLjg2OS0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5YTYuMjM2IDYuMjM2IDAgMDEtLjc3OS0uNDA2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5kaXNrVXNhZ2UgJT4gdXNlZFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy5saW5lcy5lcnJvciA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjQuNjY0YS4yNS4yNSAwIDAwLS4wNzMtLjE3N2wtMi45MTQtMi45MTRhLjI1LjI1IDAgMDAtLjE3Ny0uMDczSDIuNzV6TTEgMS43NUMxIC43ODQgMS43ODQgMCAyLjc1IDBoNy41ODZjLjQ2NCAwIC45MDkuMTg0IDEuMjM3LjUxM2wyLjkxNCAyLjkxNGMuMzI5LjMyOC41MTMuNzczLjUxMyAxLjIzN3Y5LjU4NkExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjEuNzV6bTcgMS41YS43NS43NSAwIDAxLjc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41djEuNWEuNzUuNzUgMCAwMS0xLjUgMFY3aC0xLjVhLjc1Ljc1IDAgMDEwLTEuNWgxLjVWNEEuNzUuNzUgMCAwMTggMy4yNXptLTMgOGEuNzUuNzUgMCAwMS43NS0uNzVoNC41YS43NS43NSAwIDAxMCAxLjVoLTQuNWEuNzUuNzUgMCAwMS0uNzUtLjc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5saW5lcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5hZGRlZCAlPiBhZGRlZCwgPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiByZW1vdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCAlPiBTcG9uc29yPCU9IHModXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzICU+IFN0YXJnYXplcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3JrcyAlPiBGb3JrPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMgJT4gV2F0Y2hlcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50cmFmZmljKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMS43NUEuNzUuNzUgMCAwMS43NSAxaDQuMjUzYzEuMjI3IDAgMi4zMTcuNTkgMyAxLjUwMUEzLjc0NCAzLjc0NCAwIDAxMTEuMDA2IDFoNC4yNDVhLjc1Ljc1IDAgMDEuNzUuNzV2MTAuNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNTA3YTIuMjUgMi4yNSAwIDAwLTEuNTkxLjY1OWwtLjYyMi42MjFhLjc1Ljc1IDAgMDEtMS4wNiAwbC0uNjIyLS42MjFBMi4yNSAyLjI1IDAgMDA1LjI1OCAxM0guNzVhLjc1Ljc1IDAgMDEtLjc1LS43NVYxLjc1em04Ljc1NSAzYTIuMjUgMi4yNSAwIDAxMi4yNS0yLjI1SDE0LjV2OWgtMy43NTdjLS43MSAwLTEuNC4yMDEtMS45OTIuNTcybC4wMDQtNy4zMjJ6bS0xLjUwNCA3LjMyNGwuMDA0LTUuMDczLS4wMDItMi4yNTNBMi4yNSAyLjI1IDAgMDA1LjAwMyAyLjVIMS41djloMy43NTdhMy43NSAzLjc1IDAgMDExLjk5NC41NzR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50ICU+IHZpZXc8JT0gcyhwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQpICU+IGluIGxhc3QgdHdvIHdlZWtzXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPklzc3VlczwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJpc3N1ZXMtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2Q3M2E0OVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4YTc0NVwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaG9yaXpvbnRhbCBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiI2Q3M2E0OVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAwMTEwLjY1LTUuMDAzLjc1Ljc1IDAgMDAuOTU5LTEuMTUzIDggOCAwIDEwMi41OTIgOC4zMy43NS43NSAwIDEwLTEuNDQ0LS40MDdBNi41IDYuNSAwIDAxMS41IDh6TTggMTJhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTAtOGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMTEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptNC43OCA0LjI4bDMtM2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIuNDcgMi40Ny0uOTctLjk3YS43NDkuNzQ5IDAgMTAtMS4wNiAxLjA2bDEuNSAxLjVhLjc1Ljc1IDAgMDAxLjA2IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkICU+IENsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPlB1bGwgcmVxdWVzdHM8L2gzPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cC5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHItYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAucHIuY291bnQgPyAwIDogMjIwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2ZjQyYzFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9ICgxLXBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkL3BsdWdpbnMuZm9sbG93dXAucHIuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjNmY0MmMxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1NFYzLjI1di4wMDVhLjc1Ljc1IDAgMTEwLS4wMDV2LjAwNHptLjQ1IDEuOWEyLjI1IDIuMjUgMCAxMC0xLjk1LjIxOHY1LjI1NmEyLjI1IDIuMjUgMCAxMDEuNSAwVjcuMTIzQTUuNzM1IDUuNzM1IDAgMDA5LjI1IDloMS4zNzhhMi4yNTEgMi4yNTEgMCAxMDAtMS41SDkuMjVhNC4yNSA0LjI1IDAgMDEtMy44LTIuMzQ2ek0xMi43NSA5YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41em0tOC41IDQuNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZCAlPiBNZXJnZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjMjhhNzQ1XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5vcGVuICU+IE9wZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgIDxoMz5Nb3N0IHVzZWQgbGFuZ3VhZ2VzPC9oMz5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICA8bWFzayBpZD1cImxhbmd1YWdlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcy5sZW5ndGggPyAwIDogNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvciwgeH0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNsYW5ndWFnZXMtYmFyKVwiIHg9XCI8JT0geCo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHZhbHVlKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIvPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXIgaG9yaXpvbnRhbC13cmFwIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZSwgY29sb3J9IG9mIHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBuby13cmFwIGxhbmd1YWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiPCU9IGNvbG9yICU+XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMEExLjc1IDEuNzUgMCAwMDAgMS43NXYxMi41QzAgMTUuMjE2Ljc4NCAxNiAxLjc1IDE2aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxNC4yNVYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMEgxLjc1ek0xLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMTIuNWEuMjUuMjUgMCAwMS4yNS4yNXYxMi41YS4yNS4yNSAwIDAxLS4yNS4yNUgxLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNMTEuNzUgM2EuNzUuNzUgMCAwMC0uNzUuNzV2Ny41YS43NS43NSAwIDAwMS41IDB2LTcuNWEuNzUuNzUgMCAwMC0uNzUtLjc1em0tOC4yNS43NWEuNzUuNzUgMCAwMTEuNSAwdjUuNWEuNzUuNzUgMCAwMS0xLjUgMHYtNS41ek04IDNhLjc1Ljc1IDAgMDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjVBLjc1Ljc1IDAgMDA4IDN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy50b3RhbENvdW50ICU+IFByb2plY3Q8JT0gcyhwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB1cGRhdGVkLCBwcm9ncmVzc30gb2YgcGx1Z2lucy5wcm9qZWN0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0wIDMuNzVDMCAyLjc4NC43ODQgMiAxLjc1IDJoMTIuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djguNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE0SDEuNzVBMS43NSAxLjc1IDAgMDEwIDEyLjI1di04LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMy41IDYuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDdhLjc1Ljc1IDAgMDEwIDEuNWgtN2EuNzUuNzUgMCAwMS0uNzUtLjc1em0uNzUgMi4yNWEuNzUuNzUgMCAwMDAgMS41aDRhLjc1Ljc1IDAgMDAwLTEuNWgtNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBuYW1lICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bS41IDQuNzVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwLjQ3MS42OTZsMi41IDFhLjc1Ljc1IDAgMDAuNTU3LTEuMzkyTDguNSA3Ljc0MlY0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlZCA8JT0gdXBkYXRlZCAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBbcHJvZ3Jlc3MuZG9uZSA/IGAke3Byb2dyZXNzLmRvbmV9IGRvbmVgIDogXCJcIiwgcHJvZ3Jlc3MuZG9pbmcgPyBgJHtwcm9ncmVzcy5kb2luZ30gZG9pbmdgIDogXCJcIiwgcHJvZ3Jlc3MudG9kbyA/IGAke3Byb2dyZXNzLnRvZG99IHRvZG9gIDogXCJcIl0uZmlsdGVyKHN0ciA9PiBzdHIpLmpvaW4oXCIgwrcgXCIpICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInByb2plY3QtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLmRvbmUvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4QTc0NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9pbmcvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZGNDJDMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAoKHByb2dyZXNzLmRvbmUrcHJvZ3Jlc3MuZG9pbmcpL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy50b2RvL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5naXN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djEyLjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNkgxLjc1QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1em05LjIyIDMuNzJhLjc1Ljc1IDAgMDAwIDEuMDZMMTAuNjkgOCA5LjIyIDkuNDdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsMi0yYS43NS43NSAwIDAwMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMDAtMS4wNiAwek02Ljc4IDYuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0yIDJhLjc1Ljc1IDAgMDAwIDEuMDZsMiAyYS43NS43NSAwIDEwMS4wNi0xLjA2TDUuMzEgOGwxLjQ3LTEuNDd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy50b3RhbENvdW50ICU+IEdpc3Q8JT0gcyhwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5naXN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMocGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjVhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMCAyLjEyMmEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4QTIuMjUgMi4yNSAwIDAwNS43NSA4LjVoMS41djIuMTI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY4LjVoMS41YTIuMjUgMi4yNSAwIDAwMi4yNS0yLjI1di0uODc4YTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhhLjc1Ljc1IDAgMDEtLjc1Ljc1aC00LjVBLjc1Ljc1IDAgMDE1IDYuMjV2LS44Nzh6bTMuNzUgNy4zNzhhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMy04Ljc1YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuZm9ya3MgJT4gRm9yazwlPSBzKHBsdWdpbnMuZ2lzdHMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkKSB7ICU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE0LjA2NCAwYTguNzUgOC43NSAwIDAwLTYuMTg3IDIuNTYzbC0uNDU5LjQ1OGMtLjMxNC4zMTQtLjYxNi42NDEtLjkwNC45NzlIMy4zMWExLjc1IDEuNzUgMCAwMC0xLjQ5LjgzM0wuMTEgNy42MDdhLjc1Ljc1IDAgMDAuNDE4IDEuMTFsMy4xMDIuOTU0Yy4wMzcuMDUxLjA3OS4xLjEyNC4xNDVsMi40MjkgMi40MjhjLjA0Ni4wNDYuMDk0LjA4OC4xNDUuMTI1bC45NTQgMy4xMDJhLjc1Ljc1IDAgMDAxLjExLjQxOGwyLjc3NC0xLjcwN2ExLjc1IDEuNzUgMCAwMC44MzMtMS40OVY5LjQ4NWMuMzM4LS4yODguNjY1LS41OS45NzktLjkwNGwuNDU4LS40NTlBOC43NSA4Ljc1IDAgMDAxNiAxLjkzNlYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMGgtLjE4NnpNMTAuNSAxMC42MjVjLS4wODguMDYtLjE3Ny4xMTgtLjI2Ni4xNzVsLTIuMzUgMS41MjEuNTQ4IDEuNzgzIDEuOTQ5LTEuMmEuMjUuMjUgMCAwMC4xMTktLjIxM3YtMi4wNjZ6TTMuNjc4IDguMTE2TDUuMiA1Ljc2NmMuMDU4LS4wOS4xMTctLjE3OC4xNzYtLjI2NkgzLjMwOWEuMjUuMjUgMCAwMC0uMjEzLjExOWwtMS4yIDEuOTUgMS43ODIuNTQ3em01LjI2LTQuNDkzQTcuMjUgNy4yNSAwIDAxMTQuMDYzIDEuNWguMTg2YS4yNS4yNSAwIDAxLjI1LjI1di4xODZhNy4yNSA3LjI1IDAgMDEtMi4xMjMgNS4xMjdsLS40NTkuNDU4YTE1LjIxIDE1LjIxIDAgMDEtMi40OTkgMi4wMmwtMi4zMTcgMS41LTIuMTQzLTIuMTQzIDEuNS0yLjMxN2ExNS4yNSAxNS4yNSAwIDAxMi4wMi0yLjVsLjQ1OC0uNDU4aC4wMDJ6TTEyIDVhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tOC40NCA5LjU2YTEuNSAxLjUgMCAxMC0yLjEyLTIuMTJjLS43MzQuNzMtMS4wNDcgMi4zMzItMS4xNSAzLjAwM2EuMjMuMjMgMCAwMC4yNjUuMjY1Yy42NzEtLjEwMyAyLjI3My0uNDE2IDMuMDA1LTEuMTQ4elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBQYWdlU3BlZWQgSW5zaWdodHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZSBjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDEyMCAxMjBcIiB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiBjbGFzcz1cImdhdWdlIDwlPSAhTnVtYmVyLmlzTmFOKHNjb3JlKSA/IChzY29yZSA+PSAwLjkgPyAnaGlnaCcgOiBzY29yZSA+PSAwLjUgPyAnYXZlcmFnZScgOiAnbG93JykgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWJhc2VcIiByPVwiNTNcIiBjeD1cIjYwXCIgY3k9XCI2MFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJnYXVnZS1hcmNcIiB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDYwIDYwKVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCIgc3Ryb2tlLWRhc2hhcnJheT1cIjwlPSBzY29yZSAqIDMyOSAlPiAzMjlcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHQgeD1cIjYwXCIgeT1cIjYwXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCIgPjwlPSBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgJT48L3RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+LTwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+PCU9IHRpdGxlICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmRldGFpbGVkKSB7ICU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdHMgcm93XCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01Ljc1Ljc1QS43NS43NSAwIDAxNi41IDBoM2EuNzUuNzUgMCAwMTAgMS41aC0uNzV2MWwtLjAwMS4wNDFhNi43MTggNi43MTggMCAwMTMuNDY0IDEuNDM1bC4wMDctLjAwNi43NS0uNzVhLjc1Ljc1IDAgMTExLjA2IDEuMDZsLS43NS43NS0uMDA2LjAwN2E2Ljc1IDYuNzUgMCAxMS0xMC41NDggMEwyLjcyIDUuMDNsLS43NS0uNzVhLjc1Ljc1IDAgMDExLjA2LTEuMDZsLjc1Ljc1LjAwNy4wMDZBNi43MTggNi43MTggMCAwMTcuMjUgMi41NDFhLjc1Ni43NTYgMCAwMTAtLjA0MXYtMUg2LjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNOCAxNC41QTUuMjUgNS4yNSAwIDEwOCA0YTUuMjUgNS4yNSAwIDAwMCAxMC41em0uMzg5LTYuN2wxLjMzLTEuMzNhLjc1Ljc1IDAgMTExLjA2MSAxLjA2TDkuNDUgOC44NjFBMS41MDIgMS41MDIgMCAwMTggMTAuNzVhMS41IDEuNSAwIDExLjM4OS0yLjk1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBUaW1lIHRvIGludGVyYWN0aXZlXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwNi4wMTYgNC4wMzUuNzUuNzUgMCAwMTEuMzg4LS41NyA4IDggMCAxMS00LjM3LTQuMzcuNzUuNzUgMCAwMS0uNTY5IDEuMzg5QTYuNDc5IDYuNDc5IDAgMDA4IDEuNXptNi4yOC4yMmEuNzUuNzUgMCAwMTAgMS4wNmwtNC4wNjMgNC4wNjRhMi41IDIuNSAwIDExLTEuMDYtMS4wNkwxMy4yMiAxLjcyYS43NS43NSAwIDAxMS4wNiAwek03IDhhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBTcGVlZCBJbmRleFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjQzIDMuMTQzTC40MjcgMS45MjdBLjI1LjI1IDAgMDAwIDIuMTA0VjUuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgzLjY0NmEuMjUuMjUgMCAwMC4xNzctLjQyN0wyLjcxNSA0LjIxNWE2LjUgNi41IDAgMTEtMS4xOCA0LjQ1OC43NS43NSAwIDEwLTEuNDkzLjE1NCA4LjAwMSA4LjAwMSAwIDEwMS42LTUuNjg0ek03Ljc1IDRhLjc1Ljc1IDAgMDEuNzUuNzV2Mi45OTJsMi4wMjguODEyYS43NS43NSAwIDAxLS41NTcgMS4zOTJsLTIuNS0xQS43NS43NSAwIDAxNyA4LjI1di0zLjVBLjc1Ljc1IDAgMDE3Ljc1IDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRvdGFsIEJsb2NraW5nIFRpbWVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4xMzQgMS41MzVDOS43MjIgMi41NjIgOC4xNiA0LjA1NyA2Ljg4OSA1LjMxMiA1LjggNi4zODcgNS4wNDEgNy40MDEgNC41NzUgOC4yOTRhMy43NDUgMy43NDUgMCAwMC0zLjIyNyAxLjA1NGMtLjQzLjQzMS0uNjkgMS4wNjYtLjg2IDEuNjU3YTExLjk4MiAxMS45ODIgMCAwMC0uMzU4IDEuOTE0QTIxLjI2MyAyMS4yNjMgMCAwMDAgMTUuMjAzdi4wNTRsLjc1LS4wMDctLjAwNy43NWguMDU0YTE0LjQwNCAxNC40MDQgMCAwMC42NTQtLjAxMiAyMS4yNDMgMjEuMjQzIDAgMDAxLjYzLS4xMThjLjYyLS4wNyAxLjMtLjE4IDEuOTE0LS4zNTcuNTkyLS4xNyAxLjIyNi0uNDMgMS42NTctLjg2MWEzLjc0NSAzLjc0NSAwIDAwMS4wNTUtMy4yMTdjLjkwOC0uNDYxIDEuOTQyLTEuMjE2IDMuMDQtMi4zIDEuMjc5LTEuMjYyIDIuNzY0LTIuODI1IDMuNzc1LTQuMjQ5LjUwMS0uNzA2LjkyMy0xLjQyOCAxLjEyNS0yLjA5Ni4yLS42NTkuMjM1LTEuNDY5LS4zNjgtMi4wNy0uNjA2LS42MDctMS40Mi0uNTUtMi4wNjktLjM0LS42Ni4yMTMtMS4zNzYuNjQ2LTIuMDc2IDEuMTU1em0tMy45NSA4LjQ4YTMuNzYgMy43NiAwIDAwLTEuMTktMS4xOTIgOS43NTggOS43NTggMCAwMTEuMTYxLTEuNjA3bDEuNjU4IDEuNjU4YTkuODUzIDkuODUzIDAgMDEtMS42MyAxLjE0MnpNLjc0MiAxNmwuMDA3LS43NS0uNzUuMDA4QS43NS43NSAwIDAwLjc0MyAxNnpNMTIuMDE2IDIuNzQ5Yy0xLjIyNC44OS0yLjYwNSAyLjE4OS0zLjgyMiAzLjM4NGwxLjcxOCAxLjcxOGMxLjIxLTEuMjA1IDIuNTEtMi41OTcgMy4zODctMy44MzMuNDctLjY2Mi43OC0xLjIyNy45MTItMS42NjIuMTM0LS40NDQuMDMyLS41NTEuMDA5LS41NzVoLS4wMDFWMS43OGMtLjAxNC0uMDE0LS4xMTItLjExMy0uNTQ4LjAyNy0uNDMyLjE0LS45OTUuNDYyLTEuNjU1Ljk0MnpNMS42MiAxMy4wODlhMTkuNTYgMTkuNTYgMCAwMC0uMTA0IDEuMzk1IDE5LjU1IDE5LjU1IDAgMDAxLjM5Ni0uMTA0IDEwLjUyOCAxMC41MjggMCAwMDEuNjY4LS4zMDljLjUyNi0uMTUxLjg1Ni0uMzI1IDEuMDExLS40OGEyLjI1IDIuMjUgMCAwMC0zLjE4Mi0zLjE4MmMtLjE1NS4xNTUtLjMyOS40ODUtLjQ4IDEuMDFhMTAuNTE1IDEwLjUxNSAwIDAwLS4zMDkgMS42N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgRmlyc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMC41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjk0YS43Ni43NiAwIDAxLjAzLS4wM2w2LjA3Ny02LjA3OGExLjc1IDEuNzUgMCAwMTIuNDEyLS4wNkwxNC41IDEwLjMxVjIuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1em0xMi41IDExSDQuODFsNS4wNDgtNS4wNDdhLjI1LjI1IDAgMDEuMzQ0LS4wMDlsNC4yOTggMy44ODl2LjkxN2EuMjUuMjUgMCAwMS0uMjUuMjV6bTEuNzUtLjI1VjIuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAxSDEuNzVBMS43NSAxLjc1IDAgMDAwIDIuNzV2MTAuNUMwIDE0LjIxNi43ODQgMTUgMS43NSAxNWgxMi41QTEuNzUgMS43NSAwIDAwMTYgMTMuMjV6TTUuNSA2YS41LjUgMCAxMS0xIDAgLjUuNSAwIDAxMSAwek03IDZhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBMYXJnZXN0IENvbnRlbnRmdWwgUGFpbnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03Ljc1IDE0QTEuNzUgMS43NSAwIDAxNiAxMi4yNXYtOC41QzYgMi43ODQgNi43ODQgMiA3Ljc1IDJoNi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRoLTYuNXptLS4yNS0xLjc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTYuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OC41ek00LjkgMy41MDhhLjc1Ljc1IDAgMDEtLjI3NCAxLjAyNS4yNS4yNSAwIDAwLS4xMjYuMjE3djYuNWEuMjUuMjUgMCAwMC4xMjYuMjE3Ljc1Ljc1IDAgMDEtLjc1MiAxLjI5OEExLjc1IDEuNzUgMCAwMTMgMTEuMjV2LTYuNWMwLS42NDkuMzUzLTEuMjE0Ljg3NC0xLjUxNmEuNzUuNzUgMCAwMTEuMDI1LjI3NHpNMS42MjUgNS41MzNhLjc1Ljc1IDAgMTAtLjc1Mi0xLjI5OUExLjc1IDEuNzUgMCAwMDAgNS43NXY0LjVjMCAuNjQ5LjM1MyAxLjIxNC44NzQgMS41MTVhLjc1Ljc1IDAgMTAuNzUyLTEuMjk4LjI1LjI1IDAgMDEtLjEyNi0uMjE3di00LjVhLjI1LjI1IDAgMDEuMTI2LS4yMTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge3Njb3JlLCBzdWZmaXggPSBcIlwiLCB0aHJlc2hvbGR9IG9mIFtcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy50b3RhbEJsb2NraW5nVGltZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbLjI4NywgLjZdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuZmlyc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuMzM2LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmxhcmdlc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuNSwgNF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6K3BsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuY3VtdWxhdGl2ZUxheW91dFNoaWZ0LCB0aHJlc2hvbGQ6Wy4xLCAuMjVdfVxyXG4gICAgICAgICAgICAgICAgXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdCB0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gc2NvcmUudG9GaXhlZCgyKS5yZXBsYWNlKC9bLl0wKyQvLCBcIlwiKSAlPiA8JT0gc3VmZml4ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIE4vQVxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0zLjI4IDUuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC01LjUgNS41YS43NS43NSAwIDEwMS4wNiAxLjA2bDUuNS01LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgaWYgKHNjb3JlIDw9IHRocmVzaG9sZFswXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgaGlnaFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em0xMS43OC0xLjcyYS43NS43NSAwIDAwLTEuMDYtMS4wNkw2Ljc1IDkuMTkgNS4yOCA3LjcyYS43NS43NSAwIDAwLTEuMDYgMS4wNmwyIDJhLjc1Ljc1IDAgMDAxLjA2IDBsNC41LTQuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzFdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBhdmVyYWdlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgbG93XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDcuMjJBLjc1Ljc1IDAgMDE1IDBoNmEuNzUuNzUgMCAwMS41My4yMmw0LjI1IDQuMjVjLjE0MS4xNC4yMi4zMzEuMjIuNTN2NmEuNzUuNzUgMCAwMS0uMjIuNTNsLTQuMjUgNC4yNUEuNzUuNzUgMCAwMTExIDE2SDVhLjc1Ljc1IDAgMDEtLjUzLS4yMkwuMjIgMTEuNTNBLjc1Ljc1IDAgMDEwIDExVjVhLjc1Ljc1IDAgMDEuMjItLjUzTDQuNDcuMjJ6bS44NCAxLjI4TDEuNSA1LjMxdjUuMzhsMy44MSAzLjgxaDUuMzhsMy44MS0zLjgxVjUuMzFMMTAuNjkgMS41SDUuMzF6TTggNGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMDEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptMCA4YTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41Yy0yLjM2MyAwLTQgMS42OS00IDMuNzUgMCAuOTg0LjQyNCAxLjYyNS45ODQgMi4zMDRsLjIxNC4yNTNjLjIyMy4yNjQuNDcuNTU2LjY3My44NDguMjg0LjQxMS41MzcuODk2LjYyMSAxLjQ5YS43NS43NSAwIDAxLTEuNDg0LjIxMWMtLjA0LS4yODItLjE2My0uNTQ3LS4zNy0uODQ3YTguNjk1IDguNjk1IDAgMDAtLjU0Mi0uNjhjLS4wODQtLjEtLjE3My0uMjA1LS4yNjgtLjMyQzMuMjAxIDcuNzUgMi41IDYuNzY2IDIuNSA1LjI1IDIuNSAyLjMxIDQuODYzIDAgOCAwczUuNSAyLjMxIDUuNSA1LjI1YzAgMS41MTYtLjcwMSAyLjUtMS4zMjggMy4yNTktLjA5NS4xMTUtLjE4NC4yMi0uMjY4LjMxOS0uMjA3LjI0NS0uMzgzLjQ1My0uNTQxLjY4MS0uMjA4LjMtLjMzLjU2NS0uMzcuODQ3YS43NS43NSAwIDAxLTEuNDg1LS4yMTJjLjA4NC0uNTkzLjMzNy0xLjA3OC42MjEtMS40ODkuMjAzLS4yOTIuNDUtLjU4NC42NzMtLjg0OC4wNzUtLjA4OC4xNDctLjE3My4yMTMtLjI1My41NjEtLjY3OS45ODUtMS4zMi45ODUtMi4zMDQgMC0yLjA2LTEuNjM3LTMuNzUtNC0zLjc1ek02IDE1LjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMi41YS43NS43NSAwIDAxLS43NS0uNzV6TTUuNzUgMTJhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgQ29kaW5nIGhhYml0c1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaGFiaXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuaW5kZW50cy5zdHlsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMTg0IDEuMTQzYTEuNzUgMS43NSAwIDAwLTIuNTAyLS41N0wuOTEyIDcuOTE2YTEuNzUgMS43NSAwIDAwLS41MyAyLjMybC40NDcuNzc1YTEuNzUgMS43NSAwIDAwMi4yNzUuNzAybDExLjc0NS01LjY1NmExLjc1IDEuNzUgMCAwMC43NTctMi40NTFsLTEuNDIyLTIuNDY0em0tMS42NTcuNjY5YS4yNS4yNSAwIDAxLjM1OC4wODFsMS40MjIgMi40NjRhLjI1LjI1IDAgMDEtLjEwOC4zNWwtMi4wMTYuOTctMS41MDUtMi42MDUgMS44NS0xLjI2ek05LjQzNiAzLjkybDEuMzkxIDIuNDEtNS40MiAyLjYxLS45NDItMS42MyA0Ljk3LTMuMzl6TTMuMjIyIDguMTU3bC0xLjQ2NiAxYS4yNS4yNSAwIDAwLS4wNzUuMzNsLjQ0Ny43NzVhLjI1LjI1IDAgMDAuMzI1LjFsMS41OTgtLjc2OS0uODMtMS40MzZ6bTYuMjUzIDIuMzA2YS43NS43NSAwIDAwLS45NDQtLjI1MmwtMS44MDkuODdhLjc1Ljc1IDAgMDAtLjI5My4yNTNMNC4zOCAxNC4zMjZhLjc1Ljc1IDAgMTAxLjIzOC44NDhsMS44ODEtMi43NXYyLjgyNmEuNzUuNzUgMCAwMDEuNSAwdi0yLjgyNmwxLjg4MSAyLjc1YS43NS43NSAwIDAwMS4yMzgtLjg0OGwtMi42NDQtMy44NjN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBTdGFycmVkIHRvcGljc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRvcGljcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9waWNzIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgZGVzY3JpcHRpb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0aXRsZT1cIjwlPSBkZXNjcmlwdGlvbiAlPlwiPjwlPSBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHpNNi4zNzkgNS4yMjdBLjI1LjI1IDAgMDA2IDUuNDQydjUuMTE3YS4yNS4yNSAwIDAwLjM3OS4yMTRsNC4yNjQtMi41NTlhLjI1LjI1IDAgMDAwLS40MjhMNi4zNzkgNS4yMjd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5tb2RlICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnByb3ZpZGVyKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLm11c2ljLnByb3ZpZGVyICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubXVzaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnRyYWNrcy5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUgPSBcIlwiLCBhcnRpc3QgPSBcIlwiLCBhcnR3b3JrID0gXCJcIn0gb2YgcGx1Z2lucy5tdXNpYy50cmFja3MpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gYXJ0d29yayAlPlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIGFsdD1cIlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj48JT0gbmFtZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpc3RcIj48JT0gYXJ0aXN0ICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyBtdXNpYyByZWNlbnRseSBsaXN0ZW5lZFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQ1Ni43MzRhMS43NSAxLjc1IDAgMDEyLjgyNi41MDRsLjYxMyAxLjMyN2EzLjA4MSAzLjA4MSAwIDAwMi4wODQgMS43MDdsMi40NTQuNTg0YzEuMzMyLjMxNyAxLjggMS45NzIuODMyIDIuOTRMMTEuMDYgMTBsMy43MiAzLjcyYS43NS43NSAwIDExLTEuMDYxIDEuMDZMMTAgMTEuMDZsLTIuMjA0IDIuMjA1Yy0uOTY4Ljk2OC0yLjYyMy41LTIuOTQtLjgzMmwtLjU4NC0yLjQ1NGEzLjA4MSAzLjA4MSAwIDAwLTEuNzA3LTIuMDg0bC0xLjMyNy0uNjEzYTEuNzUgMS43NSAwIDAxLS41MDQtMi44MjZMNC40NTYuNzM0ek01LjkyIDEuODY2YS4yNS4yNSAwIDAwLS40MDQtLjA3MkwxLjc5NCA1LjUxNmEuMjUuMjUgMCAwMC4wNzIuNDA0bDEuMzI4LjYxM0E0LjU4MiA0LjU4MiAwIDAxNS43MyA5LjYzbC41ODQgMi40NTRhLjI1LjI1IDAgMDAuNDIuMTJsNS40Ny01LjQ3YS4yNS4yNSAwIDAwLS4xMi0uNDJMOS42MyA1LjczYTQuNTgxIDQuNTgxIDAgMDEtMy4wOTgtMi41MzdMNS45MiAxLjg2NnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFJlY2VudCBhcnRpY2xlc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wb3N0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjAwMiAyLjcyNWEuNzUuNzUgMCAwMS43OTctLjY5OUM4Ljc5IDIuNDIgMTMuNTggNy4yMSAxMy45NzQgMTMuMjAxYS43NS43NSAwIDExLTEuNDk3LjA5OCAxMC41MDIgMTAuNTAyIDAgMDAtOS43NzYtOS43NzYuNzUuNzUgMCAwMS0uNy0uNzk4ek0yIDEzYTEgMSAwIDExMiAwIDEgMSAwIDAxLTIgMHptLjg0LTUuOTVhLjc1Ljc1IDAgMDAtLjE3OSAxLjQ4OWMyLjUwOS4zIDQuNSAyLjI5MSA0LjggNC44YS43NS43NSAwIDEwMS40OS0uMTc4QTcuMDAzIDcuMDAzIDAgMDAyLjgzOCA3LjA1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgRnJvbSA8JT0gcGx1Z2lucy5wb3N0cy5zb3VyY2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMubGlzdC5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGl0bGUsIGRhdGV9IG9mIHBsdWdpbnMucG9zdHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwb3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAwYS43NS43NSAwIDAxLjc1Ljc1VjJoNVYuNzVhLjc1Ljc1IDAgMDExLjUgMFYyaDEuMjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMC41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMy43NUMxIDIuNzg0IDEuNzg0IDIgMi43NSAySDRWLjc1QS43NS43NSAwIDAxNC43NSAwem0wIDMuNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjVWNmgtMTFWMy43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMnptLTIuMjUgNHY2Ljc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNy41aC0xMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj48JT0gZGF0ZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djkuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDYuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTkuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djkuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDEzSDguMDZsLTIuNTczIDIuNTczQTEuNDU3IDEuNDU3IDAgMDEzIDE0LjU0M1YxM0gxLjc1QTEuNzUgMS43NSAwIDAxMCAxMS4yNXYtOS41ek05IDlhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTUuMjVhLjc1Ljc1IDAgMDAtMS41IDB2Mi41YS43NS43NSAwIDAwMS41IDB2LTIuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgTm8gcmVjZW50IHBvc3RzXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlXCIgOiBcImluY2x1ZGVzXCIgJT4gcHJpdmF0ZSBjb250cmlidXRpb25zPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+TGFzdCB1cGRhdGVkIDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT4gd2l0aCBsb3dsaWdodGVyL21ldHJpY3NAPCU9IG1ldGEudmVyc2lvbiAlPjwvc3Bhbj5cclxuICAgICAgICA8L2Zvb3Rlcj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+Iiwic3R5bGUiOiIvKiBTVkcgZ2xvYmFsIGNvbnRleHQgKi9cclxuICBzdmcge1xyXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgU2Vnb2UgVUksIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsIEFwcGxlIENvbG9yIEVtb2ppLCBTZWdvZSBVSSBFbW9qaTtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGNvbG9yOiAjNzc3Nzc3O1xyXG4gIH1cclxuXHJcbi8qIEhlYWRlcnMgKi9cclxuICBoMSwgaDIsIGgzIHtcclxuICAgIG1hcmdpbjogOHB4IDAgMnB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGNvbG9yOiAjMDM2NmQ2O1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICB9XHJcbiAgaDEgc3ZnLCBoMiBzdmcsIGgzIHN2ZyB7XHJcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbiAgfVxyXG4gIGgxIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuICBoMiB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICB9XHJcblxyXG4vKiBGaWVsZHMgKi9cclxuICBzZWN0aW9uID4gLmZpZWxkIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcbiAgLmZpZWxkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB9XHJcbiAgLmZpZWxkIHN2ZyB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmlsbDogIzk1OWRhNTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG4gIC5maWVsZC5lcnJvciBzdmcge1xyXG4gICAgZmlsbDogI2NiMjQzMTtcclxuICB9XHJcblxyXG4vKiBEaXNwbGF5cyAqL1xyXG4gIC5yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcbiAgLnJvdyBzZWN0aW9uIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAuY29sdW1uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgLmNlbnRlciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbiAgLmhvcml6b250YWwge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsLXdyYXAge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbCAuZmllbGQge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG4gIC5uby13cmFwIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWxsLXdpZHRoIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbi8qIFVzZXIgYXZhdGFyICovXHJcbiAgLmF2YXRhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgbWFyZ2luOiAwIDZweDtcclxuICB9XHJcblxyXG4vKiBDb21taXQgY2FsZW5kYXIgKi9cclxuICAuY2FsZW5kYXIuZmllbGQge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XHJcbiAgfVxyXG4gIC5jYWxlbmRhciAuZGF5IHtcclxuICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI3LDMxLDM1LC4wNCk7XHJcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcclxuICB9XHJcblxyXG4vKiBQcm9ncmVzcyBiYXJzICovXHJcbiAgc3ZnLmJhciB7XHJcbiAgICBtYXJnaW46IDRweCAwO1xyXG4gIH1cclxuXHJcbi8qIExhbmd1YWdlICovXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHtcclxuICAgIG1hcmdpbjogMCA4cHg7XHJcbiAgICBmbGV4LWdyb3c6IDA7XHJcbiAgfVxyXG5cclxuICAuZmllbGQubGFuZ3VhZ2Ugc21hbGwge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgIG9wYWNpdHk6IC43O1xyXG4gIH1cclxuXHJcbi8qIExhYmVscyAqL1xyXG4gIC5sYWJlbCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGOEZGO1xyXG4gICAgY29sb3I6ICMwMzY2RDY7XHJcbiAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XHJcbiAgICBtYXJnaW46IDJweCA1cHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICB9XHJcblxyXG4gIC5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRERFRUZGO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbi8qIEhhYml0cyAqL1xyXG4gIC5oYWJpdHMge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzN3B4O1xyXG4gIH1cclxuXHJcbi8qIEZvb3RlciAqL1xyXG4gIGZvb3RlciB7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4vKiBTcGVlZCB0ZXN0IGNhdGVnb3JpZXMgKi9cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuICAuY2F0ZWdvcmllIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbi8qIEdhdWdlcyAqL1xyXG4gIC5nYXVnZSB7XHJcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gIH1cclxuICAuZ2F1Z2UuaGlnaCB7XHJcbiAgICBjb2xvcjogIzE4YjY2MztcclxuICB9XHJcbiAgLmdhdWdlLmF2ZXJhZ2Uge1xyXG4gICAgY29sb3I6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5nYXVnZS5sb3cge1xyXG4gICAgY29sb3I6ICNlNTM5MzU7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlLCAuZ2F1Z2UtYXJjIHtcclxuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxMDtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2Uge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAuZ2F1Z2UtYXJjIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMjUwbXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1nYXVnZSAxcyBlYXNlIGZvcndhcmRzXHJcbiAgfVxyXG4gIC5nYXVnZSB0ZXh0IHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcbiAgLmdhdWdlIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZ2F1Z2Uge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMzI5O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYXVkaXRzIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmF1ZGl0LnRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MnB4O1xyXG4gIH1cclxuICAuYXVkaXQgc3ZnIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLmF1ZGl0LmhpZ2gge1xyXG4gICAgZmlsbDogIzE4YjY2MztcclxuICB9XHJcbiAgLmF1ZGl0LmF2ZXJhZ2Uge1xyXG4gICAgZmlsbDogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmF1ZGl0LmxvdyB7XHJcbiAgICBmaWxsOiAjZTUzOTM1O1xyXG4gIH1cclxuXHJcbi8qIE11c2ljIHBsdWdpbiAqL1xyXG4gIC50cmFja2xpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC50cmFjayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAudHJhY2sgaW1nIHtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIH1cclxuICAudHJhY2sgLm5hbWUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIC50cmFjayAuYXJ0aXN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIG9wYWNpdHk6IC43O1xyXG4gIH1cclxuXHJcbi8qIFBvc3RzIHBsdWdpbiAqL1xyXG4gIC5wb3N0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgbWF4LWhlaWdodDogNDBweDs7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAuZGF0ZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIG9wYWNpdHk6IC43O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMXB4O1xyXG4gIH1cclxuXHJcbi8qIFRvcGljcyAqL1xyXG4gIC50b3BpY3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcblxyXG4vKiBGYWRlIGFuaW1hdGlvbiAqL1xyXG4gIC5hZiB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tZmFkZSAxcyBlYXNlIGZvcndhcmRzO1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFuaW1hdGlvbi1mYWRlIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsicXVlcnkiOiJxdWVyeSBNZXRyaWNzIHtcclxuICB1c2VyKGxvZ2luOiAkbG9naW4pIHtcclxuICAgIGRhdGFiYXNlSWRcclxuICAgIG5hbWVcclxuICAgIGxvZ2luXHJcbiAgICBjcmVhdGVkQXRcclxuICAgIGF2YXRhclVybFxyXG4gICAgd2Vic2l0ZVVybFxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDQ4XHJcbiAgKyAoISFiYXNlLmhlYWRlcikqNjJcclxuICArICghIWJhc2UubWV0YWRhdGEpKjEwOFxyXG4gICsgKCEhYmFzZS5hY3Rpdml0eSkqMTA4XHJcbiAgKyAoISFiYXNlLmNvbW11bml0eSkqOTRcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxNDJcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCEhcGx1Z2lucy50cmFmZmljKSkqMThcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCEhcGx1Z2lucy5mb2xsb3d1cCkpKjEwMlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmxpbmVzKSkqMzRcclxuICArICghIXBsdWdpbnMucGFnZXNwZWVkKSoxMTBcclxuICArICghIXBsdWdpbnMubGFuZ3VhZ2VzKSoxMjRcclxuICArIE1hdGgubWF4KDAsICgoKCEhYmFzZS5tZXRhZGF0YSkrKCEhYmFzZS5oZWFkZXIpKygoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSsoISFiYXNlLnJlcG9zaXRvcmllcykrKCEhcGx1Z2lucy5wYWdlc3BlZWQpKyghIXBsdWdpbnMubGFuZ3VhZ2VzKSktMSkpKjIwXHJcbiU+XCI+XHJcbiAgPCVcclxuICAgIG1ldGEuJCA9IGA8c3BhbiBjbGFzcz1cInBzMS1wYXRoXCI+JHtgJHt1c2VyLmxvZ2lufWAudG9Mb2NhbGVMb3dlckNhc2UoKX1AbWV0cmljczwvc3Bhbj46PHNwYW4gY2xhc3M9XCJwczEtbG9jYXRpb25cIj5+PC9zcGFuPiR7Y29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiI1wiIDogXCIkXCJ9YFxyXG4gICAgbWV0YS5hbmltYXRpb25zID0gIW1ldGEucGxhY2Vob2xkZXIgPyB7c3RkaW46LjE2LCBzdGRvdXQ6LjI4LCBsZW5ndGg6KDIrT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoK09iamVjdC5rZXlzKHBsdWdpbnMpLmxlbmd0aCl9IDoge3N0ZGluOjAsIHN0ZG91dDowLCBsZW5ndGg6MH1cclxuICAlPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gICAgICAuc3RkaW4sIC5zdGRvdXQge1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogPCU9IG1ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZG91dCAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgPCUgZm9yIChsZXQgaSA9IDAsIGQgPSAwOyBpIDwgbWV0YS5hbmltYXRpb25zLmxlbmd0aDsgaSsrLCBkKz1tZXRhLmFuaW1hdGlvbnMuc3RkaW4rbWV0YS5hbmltYXRpb25zLnN0ZG91dCkgeyAlPlxyXG4gICAgICAgIC5zdGRpbjpudGgtb2YtdHlwZSg8JT0gaSsxICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN0ZG91dDpudGgtb2YtdHlwZSg8JT0gaSsyICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkK21ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwlIGlmIChpID09PSBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoLTEpIHsgJT5cclxuICAgICAgICAgIGZvb3RlciB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilIA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilqE8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gZXhpdFwiPuKclTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjxwcmU+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG48ZGl2IGNsYXNzPVwiYmFubmVyXCI+PCUjIC0lPlxyXG5HaXRIdWIgbWV0cmljcyBnZW5lcmF0b3IgPCU9IG1ldGEudmVyc2lvbiAlPlxyXG5UaGVzZSBnZW5lcmF0ZWQgbWV0cmljcyBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk9cclxuV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxyXG5cclxuTGFzdCBnZW5lcmF0ZWQ6IDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IHdob2FtaTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPGI+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9iPiByZWdpc3RlcmVkPTwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24ubWF0Y2goL14uKz8gW3ltXS8pWzBdLnJlcGxhY2UoLyAvZywgXCJcIikgJT4sIHVpZD08JT0gYCR7dXNlci5kYXRhYmFzZUlkfWAuc3Vic3RyKC00KSAlPiwgZ2lkPTwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPlxyXG4gIGNvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+IDxiPjwlIGZvciAoY29uc3QgW3gsIHtjb2xvcn1dIG9mIE9iamVjdC5lbnRyaWVzKGNvbXB1dGVkLmNhbGVuZGFyKSkgeyAtJT48c3BhbiBzdHlsZT1cImNvbG9yOjwlPSBjb2xvciAlPlwiPiM8L3NwYW4+PCUgfSAlPjwvYj5cclxuICBmb2xsb3dlZCBieSA8Yj48JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpfHwoYmFzZS5jb21tdW5pdHkpKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gZ2l0IHN0YXR1czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKGJhc2UuYWN0aXZpdHkpIHsgLSU+XHJcbjxiPlJlY2VudCBhY3Rpdml0eTwvYj5cclxuICA8Yj48JT0gYCR7Y29tcHV0ZWQuY29tbWl0c31gLnBhZFN0YXJ0KDUpICU+PC9iPiBjb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zfWAucGFkU3RhcnQoNSkgJT48L2I+IHB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWU8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWUgY29tbWVudDwlPSBzKHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50KSAlPlxyXG48JSB9IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpJiYoYmFzZS5jb21tdW5pdHkpKSB7IC0lPlxyXG5cclxuPCUgfSAtJT5cclxuPCUgaWYgKGJhc2UuY29tbXVuaXR5KSB7IC0lPlxyXG48Yj5UcmFja2VkIGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmZvbGxvd2luZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPiBmb2xsb3dlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzcG9uc29yZWRcclxuICA8Yj48JT0gYCR7dXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzdGFycmVkXHJcbiAgPGI+PCU9IGAke3VzZXIud2F0Y2hpbmcudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPiB3YXRjaGVkXHJcbjwlIH0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL3JlcG9zaXRvcmllczwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IC0gPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPlxyXG48JSBpZiAocGx1Z2lucy50cmFmZmljKSB7IGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgLSU+XHJcbi0tLS0gIDxiPiAgICAgPC9iPiAgdmlld3MgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgdmlld3NcclxuPCUgfX0gLSU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgc3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHdhdGNoZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLmdpc3RzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGdpc3Q8JT0gcyh1c2VyLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbjwlIGlmIChwbHVnaW5zLmZvbGxvd3VwKSB7IGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7IC0lPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIElTU1VFUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIFBVTExfUkVRVUVTVFMgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+KTwvc3Bhbj5cclxuPCUgfSBlbHNlIHsgLSU+XHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgSVNTVUVTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkfWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJTilIDilIAgY2xvc2VkXHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgUFVMTF9SRVFVRVNUU1xyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBtZXJnZWRcclxuPCUgfX0gLSU+XHJcbjwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgLSU+XHJcbmRyLXggICAgICAgICBMSUNFTlNFXHJcbi1yLS0gICAgICAgICDilJTilIDilIAgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxpbmVzKSB7IGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbjxzcGFuIGNsYXNzPVwiZGlmZiBlcnJvclwiPkBAIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yLm1lc3NhZ2UgJT4gQEA8L3NwYW4+PCUgfSBlbHNlIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmXCI+QEAgLTwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gKzwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IEBAPC9zcGFuPlxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxvY2FsZTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUjIC0lPlxyXG48JSB9IGVsc2UgeyBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZX0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7IC0lPlxyXG48Yj48JT0gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnBhZEVuZCgxMikgJT48L2I+IFs8JT0gXCIjXCIucmVwZWF0KE1hdGguY2VpbCgxMDAqdmFsdWUvNSkpLnBhZEVuZCgyMCkgJT5dIDwlPSAoMTAwKnZhbHVlKS50b0ZpeGVkKDIpLnBhZEVuZCg1KSAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBjdXJsIC1JIDwlPSB1c2VyLndlYnNpdGVVcmwgJT48L2Rpdj48JSMgLSU+XHJcbjxkaXYgY2xhc3M9XCJzdGRvdXRcIj48JSMgLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvcikgeyAtJT5cclxuPHNwYW4gY2xhc3M9XCJlcnJvclwiPjwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+PC9zcGFuPjwlIH0gZWxzZSB7IC0lPlxyXG48Yj5Vc2VyLUFnZW50PC9iPjogR29vZ2xlIFBhZ2VTcGVlZCBBUElcclxuPGI+TG9jYXRpb248L2I+OiA8JT0gdXNlci53ZWJzaXRlVXJsICU+XHJcbjwlIGZvciAoY29uc3Qge3Njb3JlLCB0aXRsZX0gb2YgcGx1Z2lucy5wYWdlc3BlZWQuc2NvcmVzKSB7IC0lPlxyXG48Yj48JT0gYFgtJHt0aXRsZS5yZXBsYWNlKC8gL2csIFwiLVwiKX1gICU+PC9iPjogPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gTWF0aC5yb3VuZChzY29yZSoxMDApIDogXCItXCIgJT4lXHJcbjwlIH19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UubWV0YWRhdGEpIHsgLSU+XHJcblxyXG48Zm9vdGVyPkNvbm5lY3Rpb24gcmVzZXQgYnkgPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+PC9mb290ZXI+PCUjIC0lPlxyXG48JSB9IC0lPjwvcHJlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+XHJcblxyXG4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogVGl0bGUgYmFyICovXHJcbiAgLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjNTA0YjQ1IDAlLCMzYzNiMzcgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgY29sb3I6ICNkNWQwY2U7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN2Q3ODcxIDAlLCAjNTk1OTUzIDEwMCUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICB9XHJcblxyXG4gIC5idXR0b24uZXhpdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2YzNzQ1OCAwJSwgI2RlNGMxMiAxMDAlKTtcclxuICB9XHJcblxyXG4vKiBUZXJtaW5hbCAqL1xyXG4gIHByZSwgLmJhbm5lciwgZm9vdGVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBjb2xvcjogI0RERERERDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICM0MjA5MkI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuICAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgY29sb3I6ICNBRTlEQTc7XHJcbiAgfVxyXG5cclxuLyogUHJvbXB0ICovXHJcbiAgLnBzMS1wYXRoIHtcclxuICAgIGNvbG9yOiAjN0VEQTI5O1xyXG4gIH1cclxuXHJcbiAgLnBzMS1sb2NhdGlvbiB7XHJcbiAgICBjb2xvcjogIzQ4NzhjMDtcclxuICB9XHJcblxyXG4vKiBEaWZmICovXHJcbiAgLmRpZmYge1xyXG4gICAgY29sb3I6ICMzQTk2REQ7XHJcbiAgfVxyXG5cclxuLyogRXJyb3IgKi9cclxuICAuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogQW5pbWF0aW9ucyAqL1xyXG4gIC5zdGRpbiwgZm9vdGVyIHtcclxuICAgIHdpZHRoOiAwJTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZGluLWFuaW1hdGlvbjtcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc3Rkb3V0IHtcclxuICAgIG1heC1oZWlnaHQ6IDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzdGRvdXQtYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3RkaW4tYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAxMDAlIHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3Rkb3V0LWFuaW1hdGlvbiB7XHJcbiAgICAwJSB7IG1heC1oZWlnaHQ6IDA7IH1cclxuICAgIDEwMCUgeyBtYXgtaGVpZ2h0OiAzNjBweDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRCtrQUJJQUFBQUFjYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBL2lBQUFBQndBQUFBY2lUdjBNVWRFUlVZQUFENjBBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFQMVFBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUErM0FBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCdzFvL1dZMjFoY0FBQUF5QUFBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxhQUFBQUVNQUFBQnNKdUVRaFdad1oyMEFBQVBRQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUHF3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWdBQUFMM3dBQUZkUWcrSEVybWhsWVdRQUFBR1VBQUFBTmdBQUFEWVhtUnFzYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWZsb2JYUjRBQUFDWEFBQUFNRUFBQURZTDNRZHcyeHZZMkVBQUF1c0FBQUEwZ0FBQU5JdkJCbCtiV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSFJBZ1p1WVcxbEFBQTcvQUFBQWNRQUFBT1RBVnl1cG5CdmMzUUFBRDNBQUFBQTdBQUFBVWxrWDhUeWNISmxjQUFBQ3NRQUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW0xT3V3elJmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NVZi81UDVsQk9nRmh3QUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K1QvMDlZWGpBQVJWQUFDd0NwRkFjUUFBRUFBQUJvQUhBQUJRQXZBQUlBQWdBc0FGb0FqUUFBQUtZQkNnQUNBQUY0Mm1OZ1lUbkRPSUdCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobllPVmtnQUZtQmlRUUdCcm95SENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCbi9ReWlBSGphWXpuRE1KVUJDRmpPUUREalM0Yi9ERFlNbXhtTUdDWXpQbVhVWk14bTJNK3dpckVFaU84ekhHUFl3M0NIWVRkUVpES1FkWkxoS2NNNWhnT005eGs3R0dvWlZqR3NaL2dIMU1YRkVNQlFCc1FnbUFURUp4aUt3V3c1QmplR0NDQU53dk1ZcW9BOHJ2L2ZnT3B0R0pZemVqR21NYno0LzRUUmtxR2RRWldoSGdnbkFXMnBaL0FGa3ZzWW5CazIvdjhEWkxlQTVTWUQzVmJLNE1GZ0JOVHRCdFMvaVdFamt6VERPNFpwRE4vKy8vNy9tMEdFWVI4VE84TnVBQkZVUGtrQUFBQjQybU5nWUdCbWdHQVpCa1lHRVBBQjhoakJmQllHQXlETkFZUk1RRHFhb1k1aHcvLy9RSllDUXl5STlmL3gvMGYvTjBKMWdRRWpHd09jeXdqU3c4U0FDb0NTekN5c2JPd2NuRnpjUEx4OC9BS0NRc0lpb21MaUVwSlMwakt5Y3ZJS2lrcktLcXBxNmhxYVd0bzZ1bnI2Qm9aR3hpYW1adVlXbGxiV05yWjJEUFlPams3T0xxNXU3aDZlWHQ0K3ZuNytBWUZCd1NHaFllRVJrVkhSTWJGeDhRa01CRUVpQTAwQkFCVk5INWdBQUhqYXJWZHJXeHZIRlo3VkRZd0JBNUt3bTNYZFVjYWlManVTU2VzNHhGWWNzc3VpT0VwU2dYRzc2elR0TGhMdS9aTDBScS9wL2FMOG1iT2lmZXA4eTAvTGUyWldDampnUG4yZThrSG5uWmwzNWx6bnpFSkNTeElQb3pDV3N2ZEVMTzcycVBMZ1VVUzNYTG9SSjQvbDZHRkVoV2I2MGF5WUZZT0JPbkFiRFJJeGlVQnRqNFVqZ3NSdmthTkpKbzliVk5DcW9Sb3RLbW81UEM3VzZzSVBxQnJJSlBHelFpM3dzMll4b0VLd2Z5UnBYZ0VFNlpCSy9hTnhvVkRBTWRRNHZOcmcyZkZpM2ZHdlNrRGxqNnRPRld1S1JEODZqTWVyVHNFb0xHa3FlbFFQSXRaSHEwR1FFMXc1bFBSeG4wcHJqOFkzbklVZ0hJUlVDYU1HRlp2eDNqc1J5TzRva3RUdlkyb0xiTnBrdEJuSE1yTnNXSFFEVS9sSTBnYXZiekR6NDM0a0VZMVJLbW11SHlXWWtidzJ4K2cybzl1Sm04Ung3Q0phTkI4TVNPeEZKSHBNYm1Eczl1Z2FvMnU5OU1tU0dERGpTVmtjeFBFd2pjbng0amozSUpaRCtLUDh1RVZsTFdGQnFabkNwNW1nSDlHTThtbFcrY2dBdGlRdHFwaHdJeEp5bU0wYytKSVgyVjNYbXMrL1ZFekNBWlhYRzFnTTVFaU9vQ3ZiS0RjUm9kMG82YnZwWGh5cHVCRkwybm9RWWMzbHVPU210R2hHMDRYQUc0dUNUZk1zaHNwWEtCZmxwMVE0ZUV6T0FJYlF6SHFMTG1qSjFpN0NyWkk0a0h3Q2JTVXhVNUp0WSsyY0hsOVlGRUhvcnplbWhYTlJueTZrZVh1SzQ4R0VBSzRuTWh5cGxKTnFnaTFjVGdoSkYwWk9yRVJxVmJwdFZTeWNzNTJ1WTVkd1AzWHQ1S1pGYlJ3NlhwZ1h4UkJhWE5XSTExSEVsM1JXS0lRMFRMZGJ0S1JCbFpJdUJXL3dBUURJRUMzeGFBK2pKWk92WlJ5MFpJSWlFWU1CTk5OeWtNaFJJbWtaWVd2Uml1N3RSMWxwdUIxZnA0VkRkZFNpcXU3dFJyMEhkdEp0WUw1cTVtczZFeXZCd3loYldRbklTWDFhOXZqS29iVDg3QkwvTE9HSG5GWGtvdGpzUnhtSEQvNzZJMlFZYXBmV0d3cmJKdGkxNjd3Rk41bG5ZbmpTaGYxZHpKNU8xamtweklTb0tzUXJJSEZ2N0RpT3lWWmRpMHdVd3YySVZwUXZRMXBFK1Mwb2xCeEtzWWFaQkRiODU4b1ZSeXlMcXZCOW55TlJneUZZeTJxekhuM291YzhqYnF0d3R1NjE2TExPSEpaWEVIaVduOU5aa2VWek9pdXhkSFZXWm5sVlp4V1duOWZaRE10ck9wdGwrUVdkWFdEcGFUVkpCRlVTaEZ6Sk5qbnY4clZwa1Q2eHVEcGRmTTh1dGs0c3JrMFgzN2VMVWd1NjVKM25NUHY2Yitzck8zclN2d2I4azdEcmVmakhVc0UvbHRmaEg4c20vR081QnY5WWZoSCtzYndCLzFoK0NmNnhYSWQvTE50YWRremwzdFJRZXlXUjZINU9FcGpjNGphMnVYZzNOTjMwNkNZdTVndTRFMTE1VGxwVnVxbTR3eitUNGJMM1g1N2tPbHVzaEZ4NjlNSjZWbmJxWVlUdXlGNSs1VVI0enVQYzB2SkZZL21MT00xeXdzL3F4UDA5MHhhZUY2di9FdnkzZlU5dFpyZWNPdnQ2Ry9HQUEyZmJqMXVUYnJib0pkMiszR25SNW4ram9zSUhvTCtNRkluVnBtekxMdmNHaFBiK2FOUlZYVFNUQ0M4ZzJpK2VwazNIcWRjUTRUdG9ZcXQwR2JRUyttclQwTEo1NGRQRndEc2N0WldVblJIT3ZIdWFKdHYyUEtyZ051UnNTUWszbDYzZDZMZ2t5OUk5THEyVm40dDlicmx6Nk43SzdGQTdDVldDcCs5dHdtM1BQaytsSUJrcUt1TjF4WElwU0YzZ2hGdmUwM3RTbUlhSFFPMGd4d29hZHZqcG1ndU1GcHgzaGhKbG0yc0ZseGpKS0tQZ3lwODVGU2V5RVUwMm9vamZ2S1YrcWd1RjBKbkVRbUsydkpiSFFuVVFwbGVtU3pSbjFuZFVsNVZ5RnU5TlE4ak8yRWlUMkkvYXNvT1huYTNQSnlYYmxhZUNLazJNN3AvOGlMRkpQS3ZhODJ3cEx2bFhUMWdTVE5LVjhKZk8weTVQVXJ5Ri90SG1LTzdRNVNEcXUzaGNaU2R1Wnh0T0RmZjJ0Vk9yZTI3LzFLcC81dDVuN1FnMDNmR2VwWEJiMDExdkJOdTR4dURVdVZRa3RFMGIyQkVhbDdrKzEyemtVM3lwK2RaMUxsQ0Y2OVBHemJQbjcraHNEby9PWk12L1dOTGQvMWNWczAvY3h6b0tyZXBFdlRUaTNNNHVHdkFkYnhLVjF6RzY2elZVSHBmY20ya0k3aU1FZFh2dDhWbUNHMTV0MDIzYzhqZk9tZS9oT0tkV3BaZUEzOVQwTXNSYkhNVVE0Wlk3ZUlFbjBYcGJjMEhUVzRCZjFXTWhkZ0Q2QUE2RFhUMTJ6TXdlZ0psNXdKd3V3RDV6R0R4a0RvT3ZNWWZCMS9VeGVtRUFGQUU1QnNYNjJMRnpqNERzM0R2TWN4aDlnM2tHdmNzOGc3N0pQSU8reFRwRGdJUjFNa2haSjRNRDFzbGd3SnpYQVliTVlYRElIQWFQbWNQZzI4YXViYUR2R0xzWWZkZll4ZWg3eGk1RzN6ZDJNZnFCc1l2UkQ0MWRqSDVrN0dMMFk4UzRNMDNnVDh5SXRnRGZzL0Exd1BjNTZHYmtZL1JUdkxVNTUyY1dNdWZuaHVQa25GOWc4eXZUVTM5cFJtYkhrWVc4NDFjV012M1hPQ2NuL01aQ0p2eldRaWI4RHR4NzAvTitiMGFHL29HRlRQK0RoVXovSTNibWhEOVp5SVEvVzhpRXY0RDc2dlM4djVxUm9mL05RcWIvM1VLbS93TTdjOEkvTFdUQ3lFSW1mS2pIRjgwbkxsWGNjYWxRRFBIZkU5cGc3SHMwZTBqRjYvMmp5V1BkK2dUMW9BUDZBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkdGpCb1N6TXphSUdZMncxWUZEaUUySm01SUR3VEpnMDJTVll3ajh0cEQ0OERod1BMQVFabUJtNGduOWRwRDRNREdJTDRPNEVrZzh0R0ZjYU93SWdORGgwUklINkt5MFlORUg4SEJ3TkVnTUVsVW5xak9raG9GMGNEQXlPTFEwZHlDRXdDQkxZYk1TbXhpYkF5ODJudFlQemZ1b0dsZHlNVGc4dG0xaFEyQmhjWEFIMlZMZ2NBQUhqYVkyQWdBSXdna0dVbkF3UHpuUC9mL2hVaFdBenpnSEFLd3hTV3hRd01yQXJNY3hnWS90V3c3UHovaWpXWWVkUC9WLy9TWUhwWnpSZ2ZBL0ZGQU1tRUdZZ0FBQUFBaUFDSUFJZ0FpQURpQVBBQmtBSmlBd3dENmdRZ0JHUUVxZ1VvQlhBRm5nWElCZTRHTEFaMkJzQUhQQWU0Q0JJSWhBanFDVUFKdWdvZUNtQUtwZ3JrQ3lvTGFBdnlESjROQmcxc0RkZ09KZzdBRDB3UHhoQkNFSWdRM0JGMkVjWVNSQkxBRXdvVFloUXFGS3dWUUJXWUZlNFdRaGJDRjBRWHFoZ0FHRHdZZUJqQUdPb1pHQm5lR3B3YkJodkVIQ0ljcGgyRUhnd2VHQjRrSHJnZkNCL09JSElndWlGbUloSWlraU1tSTRRa0VpUm1KTllsVmlXNEpqb213aWIwSjNvbjJpZ29LTllwMkNyd0t6d3JhQ3VvQUFCNDJyVjhCM3djMWJYM3ZWTzNhRmZhMVJaSjI3UmR2YTU2VzNmWjZ1NnliRXR5bDhGTjJJQndFemJHZ0ttMkFadGdJTlFrTkdPRFFYVDRDQ1dVSkE4ZTVGRkNQZ0lFeUV2Z3ZjU0VJbzIrYysvTTdLNktiWDd2L1Q3L3JOblptVHV6OS9UL3VlZk1JQmJkS0gzR05mRTVLQm1sb2lxMEtEcS9QTitmemdrY2J1WXh4d2dNSnd6cVJFWmc0Zjh1RGNhSTRUQ3pWb3RaaE5oRjhNR2lidGhEYlJaTFNncENsaXBMWmFRa0srUnhwNlNtcEpwTmNGZERtVjZ3NXlLYmxiVUlmcTh2VkpZYUtTLzFzcWxldGp4VUZxbElaV0ZiWGxwaXN6dHdQWVpQcTBWa1UyRXIrSDFoUFJiOFhJR0xkZm1HWC9lUkQ3WXNueG5KWkE0RjJIZmZaWHhXY3pwLzU1MTh1dG5xWTk1OWx3MVlROW83NzlTRytCeFA4SWRwUVk4bnlEOFQ5UHpnNVFkKzJQK3R5Y0FKK0JaOGhCV05acjFPT29sYmRIcXpVV1NsZGRJYWdUT1lVbkdMZERJVk1makwwVytaUDNPbmtSRTUwWUxIZFN6RElveWJtNDdiMnhkSDdRZ2gzTXRoakFNdFBORE85Q0tHOFRPdGpxZ1ZEZ0lmTU9wTFBONFpOU2NuSTVUc1RIYllMSERIcEtDZ0lid1FXU1AyKzBKaE5sUmVnODAyRnliVWh1b3dNSUo1MXNJVU02Nk1EQTh1WWl6MlBiaW1adXBVK09OT3AyV00xTm5UMCszTS84bElHMDUzK1c3eHVlaG1kQlNOTXEremIzS25VL3hJTjVxQlVBcUxkT2h6UlA0eHFIYjBLKzU2YmdnMW9UYTBPTHBnVmkyajFYbHRETXN3elNrR1BhczFhaGlFdFdpZEtWbGtzY0F4REF2eVRjSTZYUllsTVp0dGJXNUdxTG10dWEyMUJXNHlaOGEwYUVOMVpWbXBOeEQwVy8wQmI4Q3M4UkR4V29SY0xGTDV3WTVNSHhHdk43NUxQNERnQ25Vbk5TWndiM3kzRkZkNFJlNENvTzNGNk5PRXhFL21jWjVVWng3VEpQMmc3dDFCanY4NitoejUrTFJEUHRpSWVYWHZtRFFRbFg2TXNyM2VjTmg3bW15azUxSk03alJXaHozeHZkaEpYQ0Vma3Y0YTM1TzJuejVOK01laWs2Tjd1UXcrRTgxQzdhZ1QzUk4xOEN5alFSYU1OWXZicXEwY2o2dXdsczhLTVl5V0J5M0pCQzNKMDJNTlJwcE9BVFFDOHdqM0lWN0w4SjFKV0F1bXcycVpQc1N5WXE4T2kyS0FCZFVwZ1QzRWlwM251b3Bjd1BiQ1NMYWpNK3JzNkdoc1JLaWpzNk96c2IyeEhXWTMweDNNOGp1RFdRYU5DOFRod2phN2JGZXljb1ZEWWF2TjdzWldpeEdMVmtYZDRGaGM4VXJJYWJzcEZDN0FaUkdRQnJtYUVhd1dteDN1WkM0dmk0VGdIaVptbjdlN3c1ZWQ3Zk5sKzR5MTErMXVidTljZE4rRjNtRFF1Mk9CZk5pYXBuVnU2ZHd6YzNaSDE4L1hlSU4zcmMzTzhyZi9jMk5lZHQ0Q1B0UGpleWh0ZHI3ZjdmWS82M2RuYkhYOHkraDBiVnl5ZUY4emM4TG44ZmllU1Y5UVNVNSs0M2VuMnBvV0ptTjdpc3UxZHQ2aW5kR2YrenpTZ1JtMW1WbUdKUDNYSTkzenB2cnlqTWs2NmIrSWpIaFVBanArQytoNE12S2lZalFGZGFBVjBXNndaUjR6L0NCaU5ZS0dGUVlSaDVESW9iNGtMQnF3VmlOcSsvU1k1ekVJQXVPc0ZxVFJDTDFJRUxLRjFxbFRTMHA4UG9TbWRreHRuOU5ZTXFVa1dsM3BLL1lWNVdRNTBzMHA4Q1BHa0pHWXNjeE52MDloR0ZkYVlpY2FqQ203UWVGeHdBZ2ozS0RZOVRDaUFQdkhYMkZreHB6RzErNmFNMGY5enp4anowaExUeHUreVVZLzJmVWpKVlBEWWZVL2t6ZzBuSENDRzVxVGNHYlE0YkRaN2NNdjJ1QXp6Y2JXV3hLSGpyeVhPSFJQNGluaU53NEJUemNBVCt0UkkvcDcwL0ZpVU93MFBVYTRFak9vRWJQTUxMK1Y1ZGhDekhOOHMyUHlVeG80MVNsN3ppeFFhZ2FDeHlEY21lVVl0ZytjcXRpckJaWE9hdEZnanVON0JSQ0duMjkxeUQ5VmNzN3hDSWJUWFZWc2ptalJXUzVDc1dzU0pOMEpEaHFobWRPQnlEcC94QitvRG9SMHhIenNjWmNjOHZ1SUZHMTJYRjRCTGt2eGI0Sm9WMTJkcjVBSW5FaTB2Q0pFeFVxc2hvaTFBak9mM213bFZ0RzhvYUlqSnpzSEI3TXlrN0tPRWErMUxGQ3lZVDdaNlM5eUw5cjdVTi9SampYTFZzNDdzdXFkdW9LNVpSZDJTVDl5USt1U3c3dUpNU3dwTEdndGpIUVdTcWNXYjRESUZ2UmMwbjBKK2ZEMkhsbHljOWZxMjZac3Zicno0UHlSM1BPbVJlWVhiY1loSVBvejVuWG1MeEREa2xDNXpQNGtFcmk2R1JLNEVEREt6SkJvaFJlUkE2Z1g5c0NSUkhVd0pnbnBBaXpSN1hpRXFzSE1YNFFLMXU5MkJkZ0tvZkJ1N25TSlZKL2hkR2JnRjRtUWNMYjBTN2FYWDQwOHlITVM3amFIL3VCamNLOHcvTkpKK0x5dzgxR2JCV3RzdVlqNEdHSWhBdWk5bWU2Ukh3R0h3NVJGek9VVnJGR1g0dEtiREE5KzllVkRCcFBlbGFMVFgvTGVsVmYrWVlCZmJUTzcwaTNhZnVucTBWSHArbjZ0SmQxbHRnbXovNEhudnZvcW5uOTZOcG5IZVRDUHU1UjVhREdhVFgweG1VZE9mQjV1SjUySHpXeTFNSUpJQkV3TnRkeHNTbUhvSG9sQ2RtYnFINjY4OHIxTDlQSnNIdnJ5cXdlVjJmQzIwOUlEcjc0cVBmU1AyWUl5STd3WlFmakZXOVU1RVgrRTBYUDRLczRBdGxPRzVrZVRpekRpQ3NQKzlHUVdYRHNETVNJSEJKSktKSUF2QjRqRlpiVUFiRUM1UkM1VzJPTXdoL0Fna2N4bDlDd0hLTUlBZHkxREVYZWdBQUJFQmdVUXdYS0ZtNExJeTB6MWd5YUtpdTlwd0VHaWtUSTl2QXl4bU1QNWZBQWp1eWt0cUJOOG1kSlhMNlhudUROeTB2ZnZUOC9KY09la3Z5ajlaNlpQMEFYVFRIYU1BamcvaHhzcXlwRytHTkI1UGFsbVowZ28rMTI2SytpMkZwdytYV0IxQjEzcHZ5c1RRazV6cXNlckc4QnB2TTZmSmRQK0szUVY1K01Za0VOK05BZU1Ha0VRNHpCQUkzQU9lQzJ4Y29LT2VLWURSbnVRTytEM0IveWl4a0VnaE1sTGJjcnZOVkhqS3pONUtWQW85WnJJOUE5NGNCV3hHT2tWb3YzU0syUWZWM21DSERQeFdKQ09KZlBCVzZYM21iK0JWYVFnZDlRQmlnRmdEbEhsUnpIZEQ0VVlUUnJGTUNJTFAweXdTajBHdmYvQUxMNWpudDdJTE9jYzFoZHhLRFhabUN3NXMwdTRKUHhKcXBYU3lqQ2NqN2tLR1pBbjZreTBxVzV5dGcxKzM0RDBFV3BRTW1FS1BSd1A4eHdSeUd5Wkg1aXJ5SHpKSDUzdng0QS8vNGJ6NE1yMHFFMDFVT1JIcmZSdVNVSDVibU1nNDBNTkRZMk44SWZ6WEw0bnlFMmZrR2xITDB2SE9JSHZSeVpVZmtyUE1ES1FKUkFsaWR3NHAwV3gwcWlPYXVNK2FpVFVENWhRU2xpZHRvaFZCRWNBT3Z0dkVYYWtSL1Ric3lJc2N3ZDg4djF1dTBiNy9ZMHBGdklwbkpkaWtYSG4weEEvVW1oTTlxQzhhRGJCa2pKMEJsOE1VeUZFWmFOV2tqU2tlRkxjYVRZYVYyVjRUTTBUZnBLNmhmRlJrdm44aGI2KzV5Kzk5UG0rdmhjRzJ3YW1UeDlvazdmYzBGSHB5eWVla0w0NmVoVGJubmdDMjQ4ZTN2VDJ3WU52Yjl4SXRwc0lQejVFQ096eWFaaFJVVFRmQ0xBS2RBRTJMSU1CSmJBQWVEbkNpSjRZdjBFL3cvNUFoTmhjWUl3QVRhcWhWVkE3Qk0xbHZ5RWlYVTRWMFBDOXlaaHBOM3J3Z01WaWM2SFJLMVFCczB0K3BzdE9zL25NWHlTNU1vWlpLcU9uQUdSK0RYd3FST2MvNXNNY1MwUmtCQkVGRU95ekhNeU1xTlZtbUo4Y0k3T0kxSmdlTmZFSUpnd0Q3N0ZyOG5HZFVTTjhLMFFGZ1p3eXY1MmFHOEVpZ29pOUNTalJxMG9ad0o3ZkY0T0oxSTB3VHp6Y3Mvbzg2VGcrUVFJYWtEckg1MHJHVHl4dHVtakR4bDV5eUQ3N1YwdTRvWG0zYlZoei93YnAvbDBrY3IxSXFBNmw0R2VYNzJ4Y3RxRnlJemwyS0p4U1ZrTjk1T2hYN0g5VGZORVViU3pHQWk4QUdVd3pFZ0JRQ0J5UXc1Sk1oS0EyRnJnQ2FKZ1hlelZ5S0krckQyd2hkQWNDa1VqQW5xY2xvVnNtU3dWYWluOEhKMGcwaUlCWUNOaHk4a0cvSlZJSjhiMlVlZUdCNWUyenUxYjNQbm5waWxmYjNLYU16QlR6MUZ0YWQrelplK0ZzSXRxSy9nc3ZQSDhyQmNBRzQzWEh1YUdPRzFjdDNCa01IVnl6NGQ2bDA2dHRUb3NyeDFCY3RXM04ydk9Jdkh1V0x1Z05UeU5rYjdCbGFCZFR1emdFT2dnd0RRVlJGaXFQbG1aaEpPQm1FU05lZHBBYUxBaFpMUUQ1R2JZSFpPbG5nY1p3Q0VaRHBoWHhCbnhhalRNWFdVMHErckNXbGlRb1pnMHVpOG13Rkh0VDJabDNrbG5mZVJuMW0zUEo5ckRrODdsMCtGTmJTVWc2RHkvVWNFT3RJL3ZJWFAra0tpbnNlSTNNenozdWtRcjhqZXpUbjZheXVndEYwTXpvTkJGZ05TWnlZbm1CQmJ2aGVKYmJCWU5BZ0h3ZkRCZTdpWmg4QkhIUlBEaWJJV0tLb0JKL0tHQVArUUpVVFBLa1daRE01S0pTak4wblIybmlqMHU5N00yRWlnTERxZ3N1UHI1czNmTzdlbDVzODZRUUNVMDUwdFJ4Y1VQTnBqblR6eTlOOGVYNEdRdVRtYzNZdUx0b1VIaXVjczFqMjdZTnJZOVdXTjIyakZ4RFFmbVViYTF6K3FQK2dNN3R4Ly8wdTJWLzlScjRxeVR1U2NqNjgxQnR0RW9qVTRtQldrNm1pd1d6SWs0aWdTNFh1RmxYbmlzMzZJZkxIS0ZBUUtOSmwya1RJY3Nnd1hjTWRlWkFCUnFYRXJESEliaEszMHFmT0NOSEZtNThaUFdhcHdZMlBGN1pjZ2hQK1U0NnZIVkt3d1hOemYzMWRWdGF1U2REcFI0SE52N3JuZWx6bGordytmejdlMVoxWC9iYkIzSGtUZjNJdFJXOURUTTMxbGV1blQ1alhSV1YxMmRBQ3cveWNxQzVqd0V3WjRoUFNTSUFIbllCSXZkRElHQzdPYURHMXlMYmtTT2FMcDlDZ3hQT2RWTDA2RURwZm11WVYraExpQW5laEJ6U3kzN2hFcVNGMnJBamtNL2ptNldRN0N1WU80a28wbEorL0w5MnV5dk5xR2YvZkpEWXhMc1E4VmowRnVpV0JQYmdBQWhVZzZaSHAxZ0VRQWZFTVlNSU9JYnZFMm5rRU9USXdYR3E2ZWZsT1owSTVkWGtWVWRLbkxuT25JQVBicEVCVHNBKzNnbkkySHp5bklzWkp3L21yVi8yTEoyemJQUDZKN2R1ZlhMOTVxVnp1bnArdWE2K3Q3SnlaVzN0eXNySzN2clpteHNhTnMrV3Q5elFvaU5kSFlOWk9UZXRXSHZQOHVYM3JGMXhVMDdXWUVmWGtVV0g4K2RYbHM0dktwcGZXamsvWCtMTGUrdnJWMVJVcktpdjd5MG51dmI4NkpjY0N6UXJ1bWJDREFjRWN5QUNqZ0Y2ZVQ2bWEwcjRCM3JINmxvZ0VKWjFqV0EvaGhNRll2NFZlYmppek9rbDh3cFJMT201N3h5Z2NsaUgzWEdWazNWc050VTNib2hxbHZUR20zbzhYdWNPeXpvbTZ4dk1sbUlWOWw3QUpRNFM0emtWclFTSmo0YXNBRk1IWm9UWVkzUVlNNnlwRk1EUUdLK3VPZEM0dzR6OTVsYmdqUHJIYkk3RG1wSEx4MEFjbU1NVjB2c1FBTWtjM0NnbkdyYkxVWjJGdU02c2prOElndzl5TzIwV09nTit3Z3pNRTdDZk9va3JFekZnNGt5a1V4UHg0RTYwblhOeHFTaWQ0RUc5aGxoVU04RjBxSk11SE1JSTNPSE1wR0JUV1N6UVlnVzdoN0dzcHBoOXplUzFKV1dQOURCM1pDZlpBQW9QL3l2ZFprdG50VnhxYnByWmE1R2VsWjYxZU0xcHVUcThNeWt6UFQwekNlOGtPdlVyWE0zNTJMbFVGb0J1MVBYSXRTQUVrTVVpdWl6WlRialNwc2dqM1dxbThGU1lBRS9OWndhcnZvUjlkcTRhTXFUTkNSQVdxSHdZK05DbThzR2N6TVJBZDJjY2REdkRLdWdXNGtzbVdxd0dBY3hWQWRYRC83SlFiakIzalBUSTNHQzF6Q0NsV3Rxcm8vekFVL0ZVbVIvU1hzSUhhZlJiOW1YSWZjT1FNVjBjMVdWZ0JodkFCVExLRW00bzV1Y2c0aUorRjNGMzFOZ0NMY1R3dUY1d01YNE9IR0pnM0VBWWc0aHU5U1VPNjR4YXNpRHZ5U3JMaWhUbXcwK0dBbm5aMUM1bDM1T01hVllXS20vQTljd2tjR1BjMHUrN3grYk4yTC9Cd05jMXNBWW0yVFNqZlZuKzZxVzdGeE1ubW1TNCtXbFRlWGxkSGZ4eHA5dXVXYlp3ZTFmKzlVVkZMMXZTUktlM3VyRzRhVW13a3pqVjNWYUhwdXZILzNMNSt1bnFBckVTQnBXTXJ1VU9jdVZvRGxxTXVxS0xNK3lNanRGaFZrZmdGdUlobEEvcXNRWnhqSWJyUTB3UzFyR01yaytMSVdWREFvc0Flb2tpMzBrQkdCSjVzYU9wQ2FHbXhVMkw1cmJERFdlSFMwTEJnbEFnWk5DNDQwdGlvWENDSHlxeEsyRWRMTXhxc1ZFY1JtTzc0cC9LNldsMU9ZQmNaQTZVVXNkc2s1MVh5TS9tLzJYWHpNRjVVNWJaSThzYmlqc0tGaDVjc0RESEk2UW1wMXJzWEl1WTVXOWEyUFBJd0JVZjdWenkwUFlaKzhvMHJOUEFwNVhmM0hINzU5dHZ4N1lIYXhkVUJkekZpeUpaQWE3OHdIZDNiRDI1Y21yRHRHbmxxMmQyL1diL3FnYTlLS1licFg5enBPY1VIaHJZODl6YUd5WHA5c0ZuMWxoTVRMNVo1OUNsT2ZmKzg3NFhjYzJqMHRMT0E3TUtDN3F1bWxwUUttTUdTSlc0RnlITzVxTmlWQmt0UTFyd08xcDJMUkpGVGJjT2F6UytGb0ZqV0xMMEFtQUMrNGtUS2lxRTBia0V5NWtDRWIrZU1NMW14K05RWE5ncmpqc2lSMXV3UnBIMXNzd3ZpcE53YngwRmRiZVI3ZjY1a21QZUFQMStnbXdyY2ROVE5CUFpGSHdLWC9Fa1JGL2ZjRWcxMGIvL1BaYU9IQ0xiSzBiK3pMamt0ZTUyb0djbTBPTUdWUzVFZGRGcUFZdHlaQkl4SjRJckFVOEM2STVnQTBGSmMrVk1xVEEvSnlzYzlFSytoSnplUUsxV05ZRllFRmJwTUtsMHNDb2NoNlFmZHZ4ZTV2dTc1ODJJcnQreTVJRkxSbDRqazcva0VrckM2YzkrZThHRlc3ZjlGbXUzNy90UkFoVGFma052ODdhZzcrWk5mVWZteHFtUWhKN0ZTNWNQYjFqZis1YnNneTRFRERRRFltd0ptaGFORm1DQWN6UXFJSlloRUlmdkZRRm15RWxTZkIvU2VXTFkyUnhCckNXb09CVDJoNEpCRFlIY2tPUEppeEpVZFZYVU1GWjFsWVMxUkY1NjUxSjh4SExyZGkwNy83NWxpKzg4ZitXampTYklrYzJlWlI5c3ZmWEwzWHYrZXZQeWd5VytiRzdJN1pkT0VkT2R2bmxhL3p2WFh2dDJmM1dGTWV5MnUyMVRwcEpNOW5Gc3Z5VmFVNjNpVkNLanJTQ2pOT0I4YmpSTGxvbEFaY0tOa1luZjYwaUhVVFp2b0Z5a1VFRk9xeWVUaEl3UWN1RW1mOSs3OSsvSHBHekMrYzJiS2YvZisvMlRGeDN2NlRsK0VhalJkZEkvVHAyUy9ubGRuTzAvZnRiMzVxRkRiNjZYZVU3bTFneHpxMEVIbTQ3cndOdVdJNEFtRE5lZmhQVmFEZGIzZzd2UjZnVXRXQWlDSkVIVEo4OGVrY21UWlhnMTlYWkVLOG1GSWljTTBpdTFlczNnVDd5ME0ycURuUnBVWFFGYUZmU2JVb09RTlpVWjVCcVZ5VElKL1NWeEordzFLZW13SXV6WUVTNEhZT3p3SHNLUU5XdklsbDBQQjBDNkkxOWl4cE9WNVNGL2tzVGsrckx4UXlEUDl4SU56Qk9VaUhpZmxLN3BJcC9TaTJUYkphMzdERVFxODJ3aDhLd2NYU3J6ckJBc0VVSlBQOGlhNE4rMW9MV2N3SExna0RIV2RldXhUdWRySVZtaTJBMSt4aS9LNjk2a1RFblh2WC9TSlJDMmdFbmxLRkpVQUk0b2xiSXBLYzRpbWZEU2NhendtOGI1cEJnSHVTcUZGMUtNRlY5UW9DQ1I3V1UwKzJTdklEbUE5QjJoL1NWcFlBd25kb3gxU0xJdXJWRHFsclZvVG5SV0pjWWlRWFlRc0RnQ2FEaDFiVi9EMEJVQnlEcGord3lqTHUvRDRWcFVFd29HSWo0d1l4MzF0Wk9hY1VWWlhCbG9XbTJhMUtBNWF0QlRkaTNhZEg5UDEzMGJIOTd4TDJvaEQ1SnRabUR1dTl0dS9YcnYvcStQTEwraFdESHJQeEw2YXBlWHlXWmQ5ZWNZWGpwZGJDa3NQb3J0ajUvQ2FiZlVWQlJUNDVaMVlRZm93alRpczVBZWNWalByVTNTYVNDRWFMdU5Ca2FyOWJXSVBFdldVc0hrNmNvT1hEY05UYW1ycWE2cUxDOHBWT0tLTjVBY0w4cE9FSnYzaklKVXFmZkdSZHNOdERVMjB0RHlNdGt1bFl4TDQ5L2tNN2lhbnNIL3ZWVCtKaWZld3h0VWN2RVJhZDFZRVZNbVhJTXZvT0xHNkZXZ213TzZQU2c3R3VJQUtQTGRaQW5MMXdLVVlvSmFGVW85eUVWWFFaVDFZcnBVN0MwWnV6S243ckJ2dzF4R0ViWlFUWnhLWjJZWlJSUzYzalIraGpIRncrZ0MwTHZMWVM1QnNqcGpKMnVEelNScUFISWVUSndaSWtrcEtYK1FvQTZEL2Y1QTJCK2ZHRkVocGI1Z1VzeUlBcC9ZOUxnK21NaHJiN3pVUHhSTklWbzEvK0RlQzZYNzZld2VsV2MzVXZMd294MHpVek94aTlyS2QwMWJCNWpqY2ZzZ3VuSTN6SE1lc1k4NW1JT1pNR1Q5REFPT3cxeWZYdEVhUTVLaU5Rekp5QVNzTENuQlpSMHRUYk5uVFlzQ1F3TlprY3JpZ0RHdU1sakdhK1MvTFZieklqWGtBaHlteUMwWm4xT0hZb2lGVWxvbkxkT2s3RzMxRkRvNWIwcTQxRWtJbmJ0NlZyclBIcktuelM3SWFYVzc2VktWdERnaDlLeVExZXFVckdUVGxmV2M4L0NxckZWTnVnV3VSdkwxUU1taXV2bGVYOER0Y2tudlRLSms4L0NEWTNsRzRsTUFsWUNiaGJRRU1QNGdvSHNrZEVNT0lzZ1JOTDd1QnVOOEVEejhwb0FDQVJUamlQdkZDZFF6SDhCVS94dC9MUzk4eUJIalRrb1prNk1xSFo1TkJYckJSSjhIWG9CN0NPWVhKZlpmNjdHekhLTG9pMVNGQmpXWXlGT3ZPNE1YaUtMNnFuSWl6QUN4a0tTNE1GUEhTVW92cjkyRTllTlJaNnhCZ3piandDZnR3aWpKS0kvYit5YmJHNGJjUUNEWDhLWjFVL3hvZVhveCtYZzd6U244OFNOOTBkc1RyS3QwNUdWQ01sTTkvT1pZRWFXWVJtNW5lcjJFOXBtSzNaV2gzbE81QmxLc1VESTJCK2d1a1JENGQxbEVESU43aVdNQTAzTkVQUlBQVWxUZ2I1R05zek5xb3NXelVvSURJZ0YvUUFrRE1STU5uekd3VVViZ1V0TVlSYTRLaHNvOEk5OXoxOFRSOTdRV3N2MlR6YUhCNzNNRGlibzZySE5rVnJDM0Q3ODZsbXFqY2ZnNDh5a1ZPNE1XQTkxYi96L1VTVmptNjcxN3Y3NzFWcnJkZUY4WEJDeDV5dzNkSW4zNStPUFNsMGRKQUNMbzhyQWNuL3JmdnZiYWQvcFZqTGtZWk9GRk9hZ3NXZ0xRQzJFQnJSVko0UjN3LzBUUG5KTVY4TUZvRC9IT0lhMWFYakRpM0RQN2lWZ0N3Rlk4dTNMbHMvdisrZzExMUg5SXNCai9YOTg5Y1BEUVZlOXlkeTEvWU11V1h5NlQzaHZMeDVHYmRtMjVnSUNleGRJM2xJZFZhRFlhaXFhV1lDVGFBQklXWXNpK21uV1l3VTFOeHdPZ1NtRmlTU3dtV1M1QkVleHFrcVFKdlZxNjVnN1FTQzIxT1pxT2gyQjRFTEFtd2lKa3dHZStUQU02bUlONGxyOTg0bURFOGd6Yk4yWndaMmZVWGwyTlVQWHM2c2FwVVpod1pYRXczKzhQNmFtRFVRUWFGdVhpcnBKZjJCSnlZK3ArNDFYZXM0cmVtWFpwUjF0bVZlNk1jRlpMcmxhWDdFa3kyYXJYbG1iVUJEV1JHVm5uYnhNMVhuK0c5dEZiSG9heG0rN3Q2cnAzazd6bGhtNlEvbm5paEhUNkJtWi9wa2Fibk9FUjBpd3VXMFpLYmtBak1ucGRNVnZnU3pmcTM2akcvdCtld0VrM0hGNy82cFZYdnRyWFI3YnJZemtLaVUyMWFEcHFpTmFDazlLQUg5UEFHUTNUcDZWQVZFZHJCRHpMcUIxMU5EdWVQcldoRHE2cUpucVVIYW5YeHlzNnREdkpsaGlPUW1vOE9xdVNaY282SnB4Y2R2alN5cUFueitGTVZzSlBZKzI4c0MzVEhjeHd6Nis1Z2pwcWFXTkMzdm5EVjY5ajR4VTcvcDI3YS82UjFmMjN1V3pGMlIwMWRVNGFkQnFhOHhxbnpnN2s1RXI3eG1ua0Y2LzA5TW0rL0RhdzYyemFkOWNSYloyRnNlREZERS9pTXhaNmdZMVU0OEJ4eGZaSlZZRUY3NVhkZ2tpSm5PNVN4MDU3N2txSzhuTkRBWS9MSDlUU1ZUT2xxNHNHWTlLZElnZnIrUEtMVmFtZ1J4SnJYeks3MUFZdkJkV3lmd0JVR3pJV1BiUnA0MEJPMkwrOGJlSHE0bFZiVmp4MythcjdHK1NPcnR6azdKTjdCNjlzcUEwdGFaMjdxYkM5YytVald4YmZYUzFqM00vOTdveXU3alVMc3lzdFpudXl5VzdKUHJSejNiSEZzMmUyRW8rUDgvenVuSzA3Tm5ZMXRHV1lyQ2twVG10Zys2cTFSenFtVjlmSitTeEdsNEN1ekFWZHlVYVJhTEdBbFE0ZXNsNmlGcExpUHAwRzVXd1U5cHRvMnFKVWttTGRBcE1nM1RnYnZGd1p6VktrMC85SkhjMUJzdjFQNmJRY3Fka2xORDNaVHlkZGxnZ01wZGZwc1FFMVJxdHhLcC8yTjlEbEhiWWJoRWdMSnFTZkxBWUs4MUV1b01JSS9NVktYaW9zTEpzQWwrUjFzYkd4cHY2RFYxLzlvRjRPS0JRVzdUbHdZTS9teEFBenN2SDNiNzMxZSthZ090MlJQVWN2di93b3MwdkIxVHFZSzFtZkNwTzV1a21OdjVsWFpneHBPWjJ4T3Rrd0N2cm9YQk9namdJVThMaTVhdVBRN2g2WVM0dDAxRkNhbDF1YUpOM2FUT2QySWRsZWcwdHcyU3I2dlZVSmhpbCt0OGZIZnFQT2RmaHFkcXM4ejlGdllaN3YwdnBpNytPNUFRT0xCUkw4MCtYZ3o4SjhPUkxmSWY5cWdjUXUyTUtvd2Q4TmtZblVUd2ZIalZJR3lMRS9na29DUkF4all6L3RiNklOeHFUTGFSeUZEcXgwSk1jSUhTSXc1eW8rTzJ1dVplZ3A2N3h3TnJlUFloNU04ZXJCVlU4YnF6UDl3bFByZG93Si95a0IxeFJteHNoVFU5eitCTG8vWnBvTExaYVJCMW12alB3d0tvRzUzMEx6dm1pMHJqbzdUZVNJcUhSYUVZalNkQ2ZwR1hrcFVZWjgvTmpFcjZvaUFvS2ovdzF4MEtjZEQrN1k4UWUwZUFMUlk1SytLZExyZUVsMUhPVnNHSlYrbkVlLzBxN2NlcnhNZW5WR25BV2RILzJ4bG40clVtQjZxK1NKNVg4YnBCZ2d4My9HeDJQZy9DVmNHOHU3YW9FSDF3TVBTbEJGTkFJc1lBa0xSQ0NhNUZ3ZzEwblN3UkpVcEpLZUlObUowZUFzbEJLRU8xMjYreFBxRXU2bDdjYlN2VE5sdGFWOWVqOE1UMGtrYStUMzBxMHhVbFl4aFRGUzF1S2pjUngvSDlEaVYzUElTUm8wMUJ3eTNxQ2g1SkRXTXI5VnpTRkZQQ0hUaUZWYlpZL0dqcmgwSTMyTVJlbklZSHd1STNOSTBpbEYxeitSR2FjYmg5dXhnZVliRDVPWjJxenNBOTlUaDFhbjlCdk5rVTZ5YS9pbHlFNXliNUlSa2Y1dlR1N3Y1K0w5L1REV2pteUJzZ2dwQVhNeC9wcGliQ1dwT0R1YjZBZE4yekJWR21rSXozcUc5Rmg3Z29JM1NGdXVmN2lJOGdpdmdkL2RRMzgzS3hva3Y4Y0F0Rm9iYjgyS3RWRFprUldTTUtYeWJKbzAxVjhkLzlsWjBwRDg4L3hTVC9EN2orWGY1SzhrVzFrMlgrQnYyVThoTHJ0UTFpUENxdWxSbHhFU0NFanlnV3pFN0NOVnN3dGhuQXM1dytrY2hOcEhCTUF3a0FiUU9wVWc1MDFLMTZMU1o4SHNjZXR3UkhEYXpQWlVsL0MzdndtdVZMdlo1aFJ3Uk9kMmNrUG0xSkZIZEhxVFF4UU5TZmhQVW1hU1FSUWRKa2pqMmxMTk1KL1JUNlVkM0JlakhES2dURG9mNjNnV0JBT01NZzl1YkYzdUk3MCs2Y2VjSk5oeTd3NW41T1Jra0QvSzJ5ck95T2J5KzVFSnBkTjdHcEhhM3BWbVVXK0dsTHBqTUZaeFkzUFRiR2xHczNTVnplMzFwWnJ4VW01amFyb2pYZmVCSWNNVnpqYU15dXZQKzBuOFkwK2dBbFNOUG0wNjdnSW5uZXpFR3JhaUhOQmRDc3lhYlhhTU9TTENFYVVMT0J2eEhPa1hHVVFzb0dMRWF2b1E2ZDhsaURDM1JTUjA5ekl5RkhUSWR5NDk5d1ZBcnAvdXFrMFpqbWp4MmE1Q3NZc0E4S3ZYRUZoZVdJaFFZWFZoVlZrcDBKYnZEd1FEa1loZVhmcFBoSjJ4bmdKZ0dpM3FDYkZ1TUtYNzEwYVdGQWtRRHowOTFVL1VNVHBsbVhIdWMrZXQvdG5pVDA3ZWZzT0dnYVk3WjV1TVhwcytPUCtGM3VmM3JlNTY1WTdwdDdheEozNXhqOVRmUnR6SWxJYkcxaG1YZGQxMmMrbUMzcTZjb0xZb0xjV2ZtbGNvY1cwTFozZmNzOEZtbDJVUkJGbTA4Sm5nT3NyUUo2ZFNJRFVSMWF6Wmo5UmNMZEJDT3FCcGFwUGJJdEQwVWcyZ2NqTmcvcG1IeXM1V3VRcXBGNUVHN1Z3WWp6aGdkTjlQdUNTYVBkbG9GQnNNVVYwZDJ3bWlzSVZDQ0lYS1FwR0NQT0lWd2ZwRDRPRGxGdEV4SFVPS1JNWW03ZU5iYlBBMDE2VlA3M2hwOCthWGRxeTR0OEhsdTUydVBkRlYvR2R3K29HMnRnT2RuWVBUcGcxMjhwbUFBSXZ2MmZiQjRjTWZiRnM4dDEzMjdGd0s5ZnRTKzVGMTY0NjBMeml5Y3VXUkJjUXVkd1B2WFdBSFo2MHY1U2JVbDNMLzEvV2xjY0Q5WDNRNU9ycTdzK2ZJd281RFBVc2ZuR1UxdTlLVE05dmY3Ny91ZzRzditlQ2F6aHNqdm16MmhMb1FYYmM4c3ZDV250NmpDNnZLVTdMVDdYNTc3ZlJkSDE1MTFZZTdwdFRXRWpUT1VKb094ZlRKbWN5Z00rb1RlUktGSlJJZmE3U1Q2VlBpMEc1cWVVS2l1U2JxRTh0emEzL0NKWW8ralJ1TllvTkJuK0tXUFVHZmZLRmd4Sy9xVTZ5TlAxU0h4OVNzejZoUDdHY3Uya2tIZXRSdzd3cFpzWjYrbEs1WWZDKzVxQ1oxVXEwaSt2VGpBekpDYUorN1dOYXJlL0FCV1o5a1RaSzFpdkQrSVBCK0d1aFRKa0J4eUpuVjFVbkV3MGtlMGI1QXJwZXN3T1MyMEo0RlJKL044a0pVODRhOW9ZQWZMdlNFL1Q1SWlqSkl6bXdua2VLTUttVEVvcGVRZ3Q3Y3FBSGtrQ2ZlZGVQU1I2ZWJqSDZiTnEvbDM5YmYvTzdtUy81d1lQdlAwNW1WMXB2M3NDZTIvWGEvejNuajBjS3d0c3hxeXJLRmk3YStmOU4xSHc3Y3NIUFRCUU5LRHl1M2hBK2lVblRSWTREUnRHcWJjYmI2UUlZR015SnA3MlFod0dOdHJ3NXJ0UUVRS2RFVEpELzJFUTJyWStFazNGS0wrK0lYSlk2a2oyekFMNVVvRFpGK201N0FYclVIUGd6KzJJWGprT1FNSzN2VWdPNjlySWcxQnZTRzNSdC9nNWRRdUhLdi9FbWFXMTIrbCtuaTVzdEQ5L0hCVW5PUlBybUtMLzZQalZSNEw2bXdqNkg0ZGZzOVE3SS8zaTJ0NFE2QkRBdFJBOVpGOVVFR0NFaWp5L0t5RWVVaVVGbWU1UVoxR3RKbzNLc1ZHTm9zSllycXN5bEtiMkUrdFlzQXJhQW1YcUlHTWZuNmJuUzJxNGxWUmRTcmtZaDRWdVQ3em55WGhHc2hnSTYvTExhR1JiVnY0alhFek94RlJRZ1ZOUlRWVjViVFZ1T0FQUkFva3lPb1hWbE9WWExkU1ZwejY5U25hQ1pwWExzaDdyWlhQNysvNTZVRllZMDVyTmUzUHRCMjFkVTdYcEF0c0MzQjhOZ1RNZTg5L05aRjl5L3hlb3pobExRS3pwbTV0LysxV3pmOTd1cXJmN2ZwY05zMVhWM1h0TTI1cHFmbm1qbEVoOEY5Y1B2Qjk5V2dEVVNIT1ZXSEEwaWowWGJMR3F1MkgrYU9YMzkzUkgxRWJUVklTN0hHNUlOa3phMUJWZkpDZENRUTFDczFWNlZUZEVMaUVwR2ZQanJqK2pUdWRVMjVmMlhYNVkxejQ0blowcm50Q3c0dFhoby9NSmZ1bjZUUnpkaTd0dTN3U3NrWlMySCt2WFBkaWdmV1M1K29CK1JvaDBaSHFVM1A1dWVsK05CYWhGSVl0SWFEeWNQeFo2VTE3SDU2ZkRWOTBuUU5lcEhpNm1rSy94clF0cWkyTGkvWnlHRlI1V0VRMUZQb0JxOHNCd1JOTi9BMDJLTFhjUXhwVStzbXo3L1FxcitmdENOcEJMN3ZMS1BrMm5VRHFxK3RqaEFIQUlsOWhGUTdBbVBUWGRGNjVrVjlxMm5pa2tZcHR6N0dzY1lmVDgyT045TnMya3UyNzROWDJUa3JuaGpXU08vajl1cFlaei9PdWVPcXNUejBCSWUvd08yeC9IQkVrdk1lOUFqd3FRSDQ1RUN6Wk9iWXdaTnozZVJabjBBTEV3dDRCRFZaNFNBcDViTnJFNC9MandNNVVEcWhYWDRjeUhyR0tpaHpwd3ZUQkhiNEcvblpHT2xyK3JrdU1UakZ4RTd5a1dHWTMrZmd3OXJSS2VwRFRqVk9aY0JOTkR2b2pnYXJXTjZqSVE5TGFIdHBRU3JZWWtnU2VZNWhVTGRBbG5UbE5YVGlnWExvTUYwdmFVTEliWkd2NlVhVFh4RU5rNFZnZFN5MXU4bEhnck5KZzhtMm83YW0yVE9uTjlRU2d3cVMvMFpWRVNnc0hHYy9reDJiVEQxYzhvUG85bkxGS0xuWGdHTTMrbHo1SllYdGhmUVJwT3VWTHhHcUpaOVNLNk1tQ0tOeUw1NDVmWTI1ODVxYVpSWDFpbm93N1RObUxQclpTdW01U2I5Q0ZMbGEzbHU1dkh0cDUyTTFBNHRIUHBGMWhmaWtHMEFXTmVodXlzM0hLc2thUXJPRGZJb3hTVGhKaDdTbVY2ZGxpTDJNNnpoVHhCQWlZK1RBU3hJbkdDOWIxL2pSNE83aTQxRE1DTWNONjFSZFdYVkU5V1hVbGYxUGZKakNiN2JrSEY2TUF2YVRQdGZVUjlhd0o4N3V4RlIrWHJ6bWZEa3VYd2JZcWhINE9LSEdsbnV1R3R2Wm45aGx2djV3NTg0UHI3eVNibnNQdGJjZjZwVzM3SWtkSHgwNDhORU9lWHQ0d2RFVks0NHVrTGMwYjRPY3Z3WG1rNDJxMEdPblFscEc1RlNjRFlrT1F4NVYxWktVSVJnclNtWEgxNzdDc2VoZVNNY21SSE1GSlozeHNtamVtRUIranVFa3BPZmtJSlJUbFZOWlVnU1R6U0xTOXNtMUtwVXg0WE1KZG54dEtsMEJ6QS9FeS8xckV2RDB5b1NFRElDbmpKbWxiZU45SytEcHcyTXpNaGwvN2VEdWkvSFZRK0JYSWw4bmdWelo4ZXBDbUUzazY5bXgxcmpMeHZIMUhNTW44dFZIQXRta1VHazhjMzhTU0ZvVForMERhdXA3Qm56MFkyeFpHaDlRTXQvRFl6TVQ0b2ZJTTB0emdhOUY2TUtvRGxSRXlDT0xaUXBudlNpaFpxUFVzNEpqaWpZT0FMNkpkUjM2SEZkdUN4M2ZqY2FQN295Q0hjSlBGY3EreGFhVm44aU93M3NqamdQOFNaV09LV1UvbjU2bHRRYVREY1dWUzA1dHd4MFUxTk8xK1dPN3lmWU5uNnZvaWx1YTJCTlphU0Z6V3BYR3NmTjMyMTRjN3o1K3MvaXlScG4raytBL01vRCtabExMYTV5a2xwZWJVTXZMUFVzdHJ4azF6WnhlV3Z3L3FlWEZYOUp3dG1MZWIraUxHWEx2M3RXN0lUdkx1MmhHNzBWbDdaMWREMTl5L3QxMXNkY3pCSDV4OWRZZGVkbitycG5MZDVYUjF6VDAvcnhhWGlnZ2IyV1lPMjFHZldhV1FaOGs2bE5UWFJ1WExOay9wN1l1L2xxR25zWHpaL3J5alBwa1VXZXp5aTlucUk3a2svVURqTFlSUDhzTm9YeTY3ZzFrWTVZWkZPaXpiU3g5dGsxcDBFdFlCY2xIZVFGL21Ed0VyRmJ6NGc4QjJ5WTAySmJGQkUwV252RS9mUGhuVk5kWHQ2MllkbmlHMGVSTE0zaGJuNS8zcTJPdms4T3ZLMjE0dEM5SU90eS92anhmVjVDUm1ta3BibmprT0I2Z1dwK24xaUViWWU0WHM3ZENabm50WThrMHpNcnFuVUZXc2poUzRlTzRZQXMvYnIyRHVJdkF4Qkh5TWdRL1pzM0NOMlpZd21LRi9FUzBzZ3laUXBQYllobk94SGd5eVNyRkdEeXJkTXJIanJHL2lhMVJRTHhVRTRSZitsdzByRjVMdm56RzN1b0pqaFFSSnJpREEydk9oNUNLUDVVVmYrUXZOS0JpZDZ3K1JkNnZBYnc1VXgweCtMK3RJKzZFQ1RWSXp4Z3Jpb3ZLa3FYbjYrUHRYNFBZaEMyTDVMNUNscFplUnV6a1ZTSE1sN0dhNTFiWllOVTZJc3l6SEZWSEsvSkRSbHBJbkxSR0dDc2l5bjJ3L2dETU9UU3hRS2l1OWs5V0lxU3JST05LaEdtLzFvVkR1Y1ZKUjMrV1ZKb2JDbWxmTU5PWmg4aDIrL1gzaVNGUGcvSGV3NnZwUWJOS1RzRGw4ZUVUVXF2UDR3b2trUFVrL3AwMUkwdktabWJHYW1RellmNlhBMzFucVJNRy81ZDFRdjA1NjRUMmluRjF3dmZ3bEZKcWhiOGcyNTV2dm02THQ0YVY0Qm5TKzdQaVpjTG1kLzY5UXE2bnlkUkxyMGdQeGlJUUkwbXgvUVc0UXQzLy9QT1lIa3FycVI0V2tGNkJvSVUyaVFtS1dGVzdJdDFob0kzNVZMUUZLTTlIQVdwaUNSNGJHZnE4WEVVOVUzRU9uYXlYMWs3WjhiTk4vbEJaejVidUdkTEJoa1RGek1DR3prVEZISDV5MzVGWkhBNFdUbUg1OHIwSG1MZGlvbnlMS1luSjhBUk1OZ05vQ0tJYjVINXZ2MXdnN0k4LzUwM0xnOEV4ejNuTHoyOEc0a1BIbEJLRDUzNG1mT0s0VHZtaDhFbktqaE1mQ1IvN2tPYy9YTWtqdCtIUGxMS2pqWlFkVjBwVlN0bnhEY0lNbDJsaytRTTBaQkFPdUpPWnUyNGszLzVENGNFajBrbjJqL3hTU0NEV1JYWGxrT1FhNkxQZmNqN3NpRDN5VFJaQW1kVjBCWjNNbnJ6SUkrb2xyNVJBSEkvNjRzTkE1T1RCTXVKRk1kTVJ5MDJLQzNPek05MFphUUV4OW9RYllBY1B0Z21pbFVUWFpDeVhhbXhLVFRYU2dPVm53dVUza3NGK0lhYTc3QXNnNWZVRHhSekxiOXE5YXd2VzRMM1VoYjcyTWFObkxyK2U3QjY0RFBQTVI2L3pTMG1oc1hyN3FzYUxqMFYwd2VzMjJ2UURodlRkVzhuUlJ4LzFtN2M3azdac0lWOTJiYlhvNXJnTlEyVGhFRE1PNlJqekNOK1BES2pncDcyZklmNGlDR3RDaXd0em5VOE84bnkvMi8vOWc0VGp3ancxdnYxZE9zazVLTTlYUjNWNWNEOHJoZ0FkNHprTVljbExwK1FISjVINlJwNGNUdVU1cmQ3RWh3RmU2MFR5bTg1WXd2TmttZWZsa1VCMklGdVVWeVhHY1JqMlBUakc3RVFPazJJWk1MOUFOVDc4M1VjTWp5ODdRSFB0eTRISkg5TW5ncTdkQzZ6ZnNtdjNKcDdsaWdmV2swUDgwcUVoZzN1T3pySjFGMkhybGkxSnp1MW0vNk9Qa2k5YmQ2Y2JCdlMyamRjRmRaRmpGemV1Mmw0dFY0RXh1Z2sveUpVekg0UHVOOVA2NkJRRHNEY1RsSWxnT3A0ODd6Y0lKc1NBVGc2U1J5dFFKMkVBcVNnU0JoQ1NFWDE5U1JBRmZJR3dqM1o5SzNWaStqVEJHTWd5cG1PUEZBanhoNnVqMVkzaEJUTlRiRFpycGxoNFJXdjFxcW1WYzBJSkI1aVBjN0o4bWZOVFRXbE9vNzY1S3lmTDY0MTlJWG5PdDh5VmJFanBHYTJnRk9SeHBBTEZBdUFpZlllSTZWVHlXZ1oxVEpMVzBzbWVJN1ZkY21sVDA2WE56WFFibmhhTy9lZUdZb2RodXoveEZMQ0VHLzF4MU1mOUhuVFpoUXBSSytwQW0rajhWbm1BdysyWTAwN0ZnbzV0dG1vWlpnNTVDOHcrWURhL0QzRmFuWmJURFpJbkRwRVdvN1ZJeTRuYVRzQ2dyRTZEQlZFbjlDR3RWbHlCUkswNHQ2MnRxS2l0bzYyanFMV29aVTZqM3g5S1M4L3orNHJKMGcrbGl6aXRzZ2dneEhpYnBOeEZRVGFCTVMvb0lvSXlLeTlTVUo5N29ScFlvYnlMMEZUcVQyVVprOFVxVGN2SitkVTF4aVI3c3NIK285YVFiTG5UYW1HYWpjUHJSYTNkYWpTeU41SFBqUmFMcFN2RDdYWklMMXZTQlEydVMvWllYZmxkYi9BZk1TK2xsMFh3RzNORXB6WFpvdC9ObTAwanYwNTMxRnRTTlNPLzVad1dzMW5MRkhQT0VXZWEwNWwrRk81aU9lck5URTdWNDRGVXM4TWlYWTExMHJlZ2lNRGJMTzUxaGJmTDBDamxiTElISkQ4ZGN5SWpjMVZHclRWeDVtcmduRjdrOU9SUktwMU92em1CeVVqa3RHSWYwZ21DYmhIUzZZUWVKT2lFZGdYVzFwN2hGcUpldCt2Yzk0aE9UUlN2cUJFNXpTRFM2RVdOZnRkUHZna3AzUlVWRlMwcld0cEpFdGJzY2xuU2h2K3hwQ0drMFVzcWdzbzdUb1N4THptaGppcFpEb0EvV2Vvck1ySWxmMVlHdGhYbFRxMFB6SFNCQW1TWWluZlhiZG85ZGVZcjJKRGhubHo0bThjSmYvZ1dxM1ZuZm0ybS9jdXM2ZG5GVmFia2hUYXIxWFpKbXQ0YjJMb2l1cjdxbmlsV0s5Z1hzbEQ3dWdDY2JRczZIMjFDMzFFdHlDakFBZzhPZ0pzQ1NWY0tCTTVOV0d0Y0RZd1d3TU9uZ2pSYjFSZXJhTEQ2WmhXdFVXZlU2Z1pKaHdZdmlIdzhvSUlETVRLb3o0U04yaVJqWnpMV0diQStTYWNuQjR4SksxQ1NNV211SXpvLzlxWVdEWUFORFFFYjVMYTdKcjJ0NWlmZXRqTWFhQVhjdG5GRDYvbXQ1NjNzWGI2MGM5RzhqbGt6Nit0SWJBa0VTaU1CZTQ0WmtGek1nZEhuUzRVenZPaGw4dmU4RUVHakNlL3FNeWRrV1pQNEFyWTBGUy9kVkx1OG91Nkt5K3AyRktlS1JvZW96ZW5KYjVyYk5pY3ZZRFo3WnpiT21US3Rrc3ErNk9JYVZrY1ZKSzRveHZ3dXl5VGVZZlFQUEg5QlNWZjFxdExVZWZVcnR6Z2RPcHNoTmN6YTBpdEtLdklqYWE2aXN1S1N0RElyL0Z1YW9YVzVSdjdzTkk5Ukcra1ljUStUZUExcEdkYkpjWi9XYXdCdlpoTE1yTWNNZlJSZjBRQzE4QkNNTFlQbTAzZnFaQ0szUDJBUHFzV0Z5UmdjYjc1YTd6cjJxM25QdDNvTmFUNlRjY2JoYVN2YUpCa1dTd1FKRG04Ni9raERzU1V6TmFOQWwxKyt2cCtOeXJrYUkzSnR6Sy81ZVFCbHdsU0RsZmRuZFNhOGt5NEI2TWpoZGN6VDhzZXlzaW9xNEkrZjV3cnNDYmpvUnFsRnp3WjZIU2hNRjdOVkNoTkxLT2V1bjhTZTUzbGdYUDFraEg3TWp5ZlA4UlVqdU92L0EyQStoZng0Mm8yU1VXdmJNQlNGajl5MFl3OE5nMjB2ZlprZTAwR3RwRjJoTkt3UUFuMVpvYzFvQzN0TU0yRzdKSkVqeVErRi9xbjFSNHl4dC8yZ3dZNVVyVXZET21aajY3dlg5eHhkU3dMd0FsOGhjSDk5eHZmRUFwdmlRK0lNejBTVmVBMXZ4SmZFTGJ3V1B4T3ZZek5UaVRmd0tpc1N0N0dWM1ZFbFdzOFpmWXNPZ1FXMmhFcWNvUzArSlY3RGtWZ2tidUd0K0pGNG5UNHZFMitnazcxUDNNYTc3QlpER05TNGdVV0ZBaVU4SkhiUlJRLzdwSE5tTk1kUTFjUWF6YmZFV2VSWi9CYlk0Sm84aWVvQkt6MTFobm5IdUJOZFBXZHhPSVRpWFZBYktocGNJYWZLMEVsaHdkZ3dyem5PbDZJeGxVR3JWcnI0MDhNMlhUQTA5WTJ0aXRMTDNXNXZYNTZYV2c1Tll5dHQ1Wm10WnBwdmM2MG5YZzRhWHhyclpLZjB2bmFIU2hXVkw1dXJmR0ptYXRFWXI1dDVITVoxN1ZTeWlBN2JZWlluRndLUFpnTStNbGV3ZHNvZnNBeDEwVXpIaEQwMkc1YjNBSDJNY01GblFIcnExM1pXZmZieWJ1K2dQN29ZRGZyTHZlMDgrUDlycTFhOEhxL1BnOE5sVkRxcUREZENMbldNUzIxZFplWXlkb0gvNy9ydnJmNCtGL2Vud3ZFa0JJT2FPY2NwUXdOVGp1RWNGZngraW1PY1VNUmQ0NmE1aWExcTczSlhUWE5qQzNWNmZJSmYzMkt6S0hqYVpZclhUc0pnQUViUFgwWVJuQXpGTFc1UnNjVlpWMXdvdUFVbnFLVXhZQzhJTlFWanZOVm44N1dNcG9reDBYTnp2cHg4U0RoOGZ2RDJMY0ZmVEtkS3VIRGp3WXVNandiOEJHaWtpV1phYUtXTklDSENSR2luZ3lpZGRORk5ENzMwMGM4QU1RWVpZcGdSUmhsam5BbmlURExGTkFsbVVGQkpNc3NjOHl5d3lCSWF5Nnl3eWhycmJMREpGdHZza0dLWFBkSmsyT2VBUTQ0NDVvUlR6c2lTNDV3TExybmltaHZ5RkxqbGpudDBpaGk4QzBtNGhGdDRoRmZJSWF0YTBtc1ZvMmJxWmV2WlRwUnQ0eUg0MitvdmxwTWlkZE11L1R2S2o1WFhKMVBUZkk1VlJma1o2aGNOUnpWUUFBRUFBZi8vQUE5NDJtTmdaR0JnNEFGaUpTQm1ZbUFHd2tRR1JvWWtoaFFnTDVVaEhjaG1BY3N3QUFBbjFBSTFlTnBqWUdSZ1lPQmlDR0ZJWW1CMmNmTUpZUkJKTDByTlpsRElTU3pKWTlCaFlBSEtNdnovendCU2hjd1dZMkIyZGd4UllCRHo5ZmNCa2tIK3ZrQVNMc3VZVnBTWXpNQUJZb0V4QzFndkkxQ0VFV2dtRTlBK0JTREp4c0RIa016QXpDREVJQXF5SFVpTGc5V213TmxNRENJTVlnQzF0aE1aZU5wallHUmdZT0Jpc0dHd1kyQjJjZk1KWVJCSkwwck5acERMU1N6Slk5QmdZQUhLTXZ6L0R5U3dzWUFBQUZzYUMyc0FBQUFBQUFFQUFBQUExYVFuQ0FBQUFBRFpuSVBoQUFBQUFObjdTVWM9JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRUNvQUJJQUFBQUFkUFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFCQWpBQUFBQndBQUFBY2lUdjBIa2RFUlVZQUFEKzRBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFRRmdBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUEvNEFBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCeUFwSzJZMjFoY0FBQUF4Z0FBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxZQUFBQUQ0QUFBQnNKN0VSVm1ad1oyMEFBQVBJQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUDdBQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWRBQUFNSWtBQUZxNGlLNXhPR2hsWVdRQUFBR1VBQUFBTmdBQUFEWVhtaHBRYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWU5b2JYUjRBQUFDWEFBQUFMb0FBQURZS3VjWlBteHZZMkVBQUF1Z0FBQUEwZ0FBQU5KWWVrSk9iV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSEhBaEZ1WVcxbEFBQTlBQUFBQWNJQUFBTnYreDlxZ25CdmMzUUFBRDdFQUFBQTdBQUFBVWxrZmNUeWNISmxjQUFBQ3J3QUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW13aWJpUWhmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NUVC8ydjMvQlBJRnBBQUJBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K3QvN2RZUGpFQVJWQUFDd0NvR2djR0FBRUFBQUJvQUc0QUJRQXhBQUlBQWdBc0FGb0FqUUFBQUp3QkZRQUNBQUY0Mm1OZ1lUbkR0SWVCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobjRPQmtnQUZtQmlRUUdCcm95TENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCMGx3eXlBSGphSlk2aGl3SnhFSVcvQVpQWkpnZ0tna1VGbXlCY0Uvd3pWb05CT0pOZ0V4R0w4V0J0NXhvVVlTMmFCRkZrMndXRFdjd0hCeWJEMXA5UGJ4N3ZHOTdBREpNNDQ2TktuUDl0UDJ5cHNKQTdkakt6SWtkQzgrU0lnREY3WnV6b3MySE9nVFZUaTZ5bkhQTEZoYXlMcWRPbTlsWkRWMEphWW8yaytLSCtzaytUaW92ZG5Rd0ZKcGF6RXBHN1dvcFAwZ3p3R0xFU3kySkFsVy8zRUx2a05Sdm9OMCszQ3RxdXY3WloyaCsvRExtNXV4UVRLSytlTjhrOU1RQUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VURUE2bXFHT1ljUC8vMENXQWtNc2lQWC84ZjlIL3pkQ2RZRUJJeHNEbk1zSTBzUEVnQXFBa3N3c3JHenNISnhjM0R5OGZQd0Nna0xDSXFKaTRoS1NVdEl5c25MeUNvcEt5aXFxYXVvYW1scmFPcnA2K2dhR1JzWW1wbWJtRnBaVzFqYTJkZ3oyRG81T3ppNnVidTRlbmw3ZVByNSsvZ0dCUWNFaG9XSGhFWkZSMFRHeGNmRUpEQVJCSWdOTkFRQVZUUitZQUFCNDJxMVhhMXNieHhXZTFRMk1BUU9Tc0p0MTNWSEdvaTQ3a2tuck9NUldITExMb2poS1VvRnh1K3MwN1M0Uzd2MlM5RWF2NmYyaS9KbXpvbjNxZk10UHkzdG1WZ280NEQ1OW52SkI1NTJaZCtaYzU4eENRa3NTRDZNd2xyTDNSQ3p1OXFqeTRGRkV0MXk2RVNlUDVlaGhSSVZtK3RHc21CV0RnVHB3R3cwU01ZbEFiWStGSTRMRWI1R2pTU2FQVzFUUXFxRWFMU3BxT1R3dTF1ckNENmdheUNUeHMwSXQ4TE5tTWFCQ3NIOGthVjRCQk9tUVN2MmpjYUZRd0RIVU9MemE0Tm54WXQzeHIwcEE1WStyVGhWcmlrUS9Pb3pIcTA3QktDeHBLbnBVRHlMV1I2dEJrQk5jT1pUMGNaOUthNC9HTjV5RklCeUVWQW1qQmhXYjhkNDdFY2p1S0pMVTcyTnFDMnphWkxRWnh6S3piRmgwQTFQNVNOSUdyMjh3OCtOK0pCR05VU3Bwcmg4bG1KRzhOc2ZvTnFQYmladkVjZXdpV2pRZkRFanNSU1I2VEc1ZzdQYm9HcU5ydmZUSmtoZ3c0MGxaSE1UeE1JM0o4ZUk0OXlDV1EvaWovTGhGWlMxaFFhbVp3cWVab0IvUmpQSnBWdm5JQUxZa0xhcVljQ01TY3BqTkhQaVNGOWxkMTVyUHYxUk13Z0dWMXh0WURPUklqcUFyMnlnM0VhSGRLT203NlY0Y3FiZ1JTOXA2RUdITjViamtwclJvUnRPRndCdUxnazN6TEliS1Z5Z1g1YWRVT0hoTXpnQ0cwTXg2aXk1b3lkWXV3cTJTT0pCOEFtMGxNVk9TYldQdG5CNWZXQlJCNks4M3BvVnpVWjh1cEhsN2l1UEJoQUN1SnpJY3FaU1Rhb0l0WEU0SVNSZEdUcXhFYWxXNmJWVXNuTE9kcm1PWGNEOTE3ZVNtUlcwY09sNllGOFVRV2x6VmlOZFJ4SmQwVmlpRU5FeTNXN1NrUVpXU0xnVnY4QUVBeUJBdDhXZ1BveVdUcjJVY3RHU0NJaEdEQVRUVGNwRElVU0pwR1dGcjBZcnU3VWRaYWJnZFg2ZUZRM1hVb3FydTdVYTlCM2JTYldDK2F1WnJPaE1yd2NNb1cxa0p5RWw5V3ZiNHlxRzAvT3dTL3l6aGg1eFY1S0xZN0VjWmh3LysraU5rR0dxWDFoc0syeWJZdGV1OEJUZVpaMko0MG9YOVhjeWVUdFk1S2N5RXFDckVLeUJ4Yit3NGpzbFdYWXRNRk1MOWlGYVVMME5hUlBrdEtKUWNTckdHbVFRMi9PZktGVWNzaTZyd2ZaOGpVWU1oV010cXN4NTk2TG5QSTI2cmNMYnV0ZWl5emh5V1Z4QjRscC9UV1pIbGN6b3JzWFIxVm1aNVZXY1ZscC9YMlF6TGF6cWJaZmtGblYxZzZXazFTUVJWRW9SY3lUWTU3L0sxYVpFK3NiZzZYWHpQTHJaT0xLNU5GOSszaTFJTHV1U2Q1ekQ3K20vckt6dDYwcjhHL0pPdzYzbjR4MUxCUDViWDRSL0xKdnhqdVFiL1dINFIvckc4QWY5WWZnbitzVnlIZnl6YlduWk01ZDdVVUhzbGtlaCtUaEtZM09JMnRybDROelRkOU9nbUx1WUx1Qk5kZVU1YVZicXB1TU0vaytHeTkxK2U1RHBicklSY2V2VENlbFoyNm1HRTdzaGVmdVZFZU03ajNOTHlSV1A1aXpqTmNzTFA2c1Q5UGRNV25oZXIveEw4dDMxUGJXYTNuRHI3ZWh2eGdBTm4yNDliazI2MjZDWGR2dHhwMGVaL282TENCNkMvakJTSjFhWnN5eTczQm9UMi9talVWVjAwa3dndklOb3ZucVpOeDZuWEVPRTdhR0tyZEJtMEV2cHEwOUN5ZWVIVHhjQTdITFdWbEowUnpyeDdtaWJiOWp5cTREYmtiRWtKTjVldDNlaTRKTXZTUFM2dGxaK0xmVzY1YytqZXl1eFFPd2xWZ3FmdmJjSnR6ejVQcFNBWktpcmpkY1Z5S1VoZDRJUmIzdE43VXBpR2gwRHRJTWNLR25iNDZab0xqQmFjZDRZU1padHJCWmNZeVNpajRNcWZPUlVuc2hGTk5xS0kzN3lsZnFvTGhkQ1p4RUppdHJ5V3gwSjFFS1pYcGtzMFo5WjNWSmVWY2hidlRVUEl6dGhJazlpUDJyS0RsNTJ0enljbDI1V25naXBOak82Zi9JaXhTVHlyMnZOc0tTNzVWMDlZRWt6U2xmQ1h6dE11VDFLOGhmN1I1aWp1ME9VZzZydDRYR1VuYm1jYlRnMzM5clZUcTN0dS85U3FmK2JlWiswSU5OM3hucVZ3VzlOZGJ3VGJ1TWJnMUxsVUpMUk5HOWdSR3BlNVB0ZHM1Rk44cWZuV2RTNVFoZXZUeHMyejUrL29iQTZQem1UTC8xalMzZjlYRmJOUDNNYzZDcTNxUkwwMDR0ek9MaHJ3SFc4U2xkY3h1dXMxVkI2WDNKdHBDTzRqQkhWNzdmRlpnaHRlYmROdDNQSTN6cG52NFRpblZxV1hnTi9VOURMRVd4ekZFT0dXTzNpQko5RjZXM05CMDF1QVg5VmpJWFlBK2dBT2cxMDlkc3pNSG9DWmVjQ2NMc0ErY3hnOFpBNkRyekdId2RmMU1YcGhBQlFCT1FiRit0aXhjNCtBN053N3pITVlmWU41QnIzTFBJTyt5VHlEdnNVNlE0Q0VkVEpJV1NlREE5YkpZTUNjMXdHR3pHRnd5QndHajVuRDROdkdybTJnN3hpN0dIM1gyTVhvZThZdVJ0ODNkakg2Z2JHTDBRK05YWXgrWk94aTlHUEV1RE5ONEUvTWlMWUEzN1B3TmNEM09laG01R1AwVTd5MU9lZG5GakxuNTRiajVKeGZZUE1yMDFOL2FVWm14NUdGdk9OWEZqTDkxemduSi96R1FpYjgxa0ltL0E3Y2U5UHpmbTlHaHY2QmhVei9nNFZNL3lOMjVvUS9XY2lFUDF2SWhMK0ErK3IwdkwrYWthSC96VUttLzkxQ3B2OERPM1BDUHkxa3dzaENKbnlveHhmTkp5NVYzSEdwVUF6eDN4UGFZT3g3Tkh0SXhldjlvOGxqM2ZvRTlhQUQrZ0FBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZbmJZd2FFc3pNMmlCbU5zTldCUTRoTmladVNBOEV5WU5Oa2xXTUkvTGFRK1BBNGNEeXdFR1pnWnVJSi9YYVErREF4aUMrRHVCSklQTFJoWEdqc0NJRFE0ZEVTQitpc3RHRFJCL0J3Y0RSSURCSlZKNm96cElhQmRIQXdNamkwTkhjZ2hNQWdTMkd6RXBzWW13TXZOcDdXRDgzN3FCcFhjakU0UExadFlVTmdZWEZ3QjlsUzRIQUFCNDJtTmdJQUNNSUpCbEp3TUQ4eHdHaG44MUNCWWpEeU1QdzJPR3h5eUxHUmhZRldDeS8xK3hCak52K3YvcVh4cE1MNnNaNDJNZ3ZnZ0ExbEVWTGdBQUFBQUFpQUNJQUlnQWlBRGNBT29Ca0FKRUF1b0RuZ1BhQkRBRWhnVUlCVndGakFXOEJlSUdKZ1pxQnJ3SFBBZXlDQllJZ0Fqb0NVUUpzZ29ZQ2xvS29ncmlDekFMY0F2NERKd05FZzJVRGZvT1lnOHNEOGdRUkJEWUVTZ1JnaEl5RXFRVE5oUENGQVlVZkJWRUZlb1dlaGJXRnp3WG5CZ2NHTFFaS2htYUdkWWFFaHBhR29vYXVCdUVIRHdjcGgxV0hiUWVQQjdlSDNRZmdCK01JQ0FnZUNFY0lhNGg5aUtVSXpJajNDUmlKTUFsUUNXZ0poNG1zaWNnSjVRb0ppaGNLTzRwWkNtc0tvSXJraXljTE9ndEZDMWNBQUI0MnExOENYd2IxYlgzdmJOb3QyeHRsaGZKc21aR2ttVlo4aTdGdXhKbnRTMW50K1BFaWVQc0Rsa2dJYXdobUlha0pRbVVRS0VwQkdoSmdLOUFBNFNHa0JBZWExdmFRdmVtZlpRQzc5SFNYN3E5OXlqd0NzU1Q3OXc3TTFwc2gvQys3MEdzR2MzY0dkMnozSFArWjVsQkxMcEwvaVBYelZlaWZPUkFUYWcvdVNnZUZZczVIWWQ3ZU13eE9vYlRqWnIwakk2RmY3c01HQ09Hdzh4NkkyWVJZdnRodzZJaDJFTnpuYzZDQW9TY1RjNHBEWFVWUVY5WmdhUEFZYmZCWGZNYXpUcDNCQlc2V0tkTzlBdkJSa2REdk43UE92eHNQTmpZa0hDdzhCbXZyeXQwbCtKMkRGdVhVODg2NEZNbkNpRXoxb2xjek10NmhmTS9Gc2lHYll3eVkrWE1uUko3OWl3anVPekYvSU1QOHNWMmw4Q2NQY3RLcnFEeHdRZU5RYjdTRi9pME0rRHpCZmpuQTc1UC9meTFuMzc1WTFzZXA4UDM0RU9zM21vM20rU25jY3BrdGx2MXJMeEJYcWZqOG13T25KS2ZkaUFHdjNiaFk1YmpQa0lXVklKNnVwOTB6MXVTZENPRThCQ0hNWlpTUEpETURDT0dFWm5lMHFRTERnTDVHSTFrSHg5STJ2UHlFTW9yeVN0MjJ1RkdKa2xuSUN6UXM0UW9OaGh2d1V5aEZ4TVNnMjBZcUdmKzA4azA4U3RXOEUyTTAvMitmODZjQlF2Z2ovdW9xR1JzYTNNemM3Q2s2UHhpcjNCVzhOSVBtTTJGQytncDVnSE96MzFVSUNLVC9BRkNCU3d5WVNzaS96R283c0tmdVh1NFUyZ2g2a2RMay8xenB6TkdVNkNFWVJtbXg1YXZaN0dPWXhnV3hHakJKbE5GeW1wZ0VESU9GZVNaV2FNeFFDa01zNzJMRmlHMHFIOVJmOTlpdU0yQ1ZQZnNXZE9TYlMzK1lFQjBpVUYvMEc3d1JWQVpkam10T0lMMTlYWHBYU3NHcWhvYk9yQ1l0U3ZFY0dORE8yN0JpYXhkVmR6NXVENXJGMGJvdWUwbGVYa2xSWWZiYml5aU82ZVNYS1FzT2djbmZxL3RyRkZPUE5CNms3SnpwazA1MGZpMnRyTktYdDc2K3piMmNYdE5kWFdON1p5eStiakFWbDZpWTMrbGJXM2txUDJjc3ZtcmN2QkgybGFPbnpzSG1uMzB3bTR1eHBlakdTaUZGcUZyays2VWsyYzVqQmIyVEhGeFBGNlVxQWh5RE0rQ3FwU0RxcFRwUUI4d2ovQUk0bUdoc0R3emdsaFdQMnpBZXIzRWdzWklzSWRZL2NERWNXUUlPd3puMlBrRFNWaEw4SXZUUFlFS0VmNk1CaStvanhjWHVwVzFvdWhPS0JoeUZib1Z4dXRkcWpiQnNZeGUxYm5oaWhnT0JRbkhFK1JhUnVkeWtvT29zWUZjem53OVdGdFYyNUdNUjJvYm5ja1YxNlhtTGUxN2VFY3drUWcyMURZbmsvSHEycmJDbHZWVFJ5TDdsajJ3TnBpNHBWWnlTVGhjNlFuejVSN3hCWHVwaWFqa0x3V3ZhN3IzRG11NS82cmhaVi9wNWI0cmVqemk2N1l5QXpuNWpyL00wKzM5bHFtc3FPZG8zK2hNNW9qb2tYc3J2T1VPTTMvYjJHOW4rRjBXM1RlQVZqNnRzL2xJUk5Xb0EzV2pUY21SUXN6eDVkaGdaSHBnWmZLWTRVY1JhOUFaV04wbzRoRFNjMmpFZ3ZWNTJHalFHMGZNbU9meHNBbFdhVVVLR1F5NllhVFRoWFc5eVdSTmpTUWhsT3hPZHMyY1h0TlIwejRsTGxWTHNjb0tUNG05QUg3T0dyU1MxYW53VVZQUGVvNllKR0tNTU9FbTRXQUNjOEM4d3ZxNmVHTkRVQncvM29vejUvQnR1N3E2dEgvTXR4MVdzYmlxOFB5ZGJwdFZMSXE2MmMxanMrcnJKUW4rbU95QmtucVFPOVdWZFhTanV5VHFjUlNlL3hlWHU2U20xT1ptcDdVcHc2UjZ1U0I3NEhQYVlWai9sd0V2cndkZWRxSWVkRERwc21DRWU5cGNZS0M2Z3d6SE5tQ2U0MVRUVmdGYXlJQlJINFdyV0k1aFJ4REcrbUVqcUdKRnlvQTVqaC9XQVZ0RkhqUzM3bEpEaHhDTXBMc2E3OEVRSXRRMUcrWXhUWXlMd1dZcFpDS2FERHFidG41QlVTQmM5ZUY0Z2hpRnRCM1I2ZDBab3lKVUV5a1FUc2NUVkplcEhnTzdFeUhtMzQ4VnVwcVQ3YkhaczZiTW5OSndvdFNwTDNLOXBWaUZaYVZseTFMSzdtTVY1Vk52ZW1Iay9yNmxTeGNQUHI3akZmKzBSRy9ISzl5cGxSYXY2M3VDMXlPdWsyYTMxQ3lQUHorMXpWbFlVRlZaV1dWTEpWZll5RTZCdi9PNi9udlhETjNaZXMzTzFZZVhuQi9yRERkTmIvc3hjQU8vd0R6QU9zQlhXRkhiQ1NNd0dhdGN0VkNId1JDSGdZQnpkb1o0Q2R4UERxQmgyRU93d2swd3hvb3NFa3VVVDg5U1d4a2l6ckFGc3c3OUhMNHlGcXZrNStES1Q3bVA2dVJ5dnlqNjhidWNJVWp1akxIOENQc0F2eDc1MERUbEI4MXd1RElGWjBLNHQxU3hSR2FrL0JpcWhFUEVuc0RYQVhMMU1Qdytuajh3Y01MbExHZklqMnVhcm1OY1RqdmRJNU1KeFREVDJHQ1BKMWliMVYzcmxPeXZ2Zjc2YTNiSldldTJXdmYvNmZiYi83U2ZYeC93eGNPbGxodms1OCtlbForL3dWSWFqdnNDaHJsL3g3MXZ2SUY3L3o2WHpqVUtjLzF4N2x3eGhya2lGRUtadVNyendwV0l6cFZ3YXdCbG1EVnd3dXVwb0hNdHRMdWNqRTZmWHBOeGUyTURRL2VJQzNFemkrak1yQk5tekJmOFhUNyt4aHZ5OGIvUE5haXp4cDFueitKT2JkWmtCdWg1dkp2TGgzWFRnaFlsODZjd0RPSWF3MTRibUJYRWdHUmRNRk1IRVNYZUM5Q0lxMGlCMzBjUk1tTVg3SEdZUTNpVWlQaG1lcFlEN1FjUUFQZHFyZzVXaDNTR0VnS0N3TVVsNGlyRGRmbVlXbTlLVGJYaU9Ra3A4UTRjSXJwT1NmSlI2dzJHKzRFT3J2cnBja0ZJV0EzTjFUKzczK1ZPQkVQbGpkYUZDNjJONWFGZ3d1MjYvMmZWelFaclFoREtuNjdtT3BxNFUyM1Z0dnpYTnptcklxWE82QlRlY1lzajZvNkhQU0hocFplRWtDY2NkMGZoRUQ4bDZpeU5WRGszdlo1dnEyNGpQSGdVN2VNRWpnSHBSSk9Wc1BnUnd3K0F1Mk14WmhCZVQ2d0JnVGs4TTU5S01CaVVwS0NrTjVSU0EycnpxMHRXOU5zMDQyanpheWJTYjZNcjk2NGFHODVUVnFYOEQ4WDF5aDhxMzdFRi9EVEhrRE1mS2g1Yi9vZDZKazhaaVMzd25lclZzUHdtVzRCWElSc3FTNWFhNk9LamV0T2YwWnRRa0RFVVVhNVQ1RVhoSmpFeWpHelgvODNaRjR6Z05WeXA2eDk0bFQwL1AzL3NUeldlWWlQSGxEbGNWQmNleFdjNWdUa0o5L2NsUGRrTGVJaWNKYm9ONkRiT1pybU9ES0hzWjNUU1l6cGw4c3luekVtRkhJVUlPditYQUdlYThUYVVoNHFUaFpwbEFOL1hDNTk1eUJLZ2Q4NUZpYy8zOXZiM3d4L2U1aFZrNGx4bENnWXhla0EreEVYNXE4R1pkVDlqQXJXbGhxaVVHQ0p5NDZ6RkpxbkhFTjZqSGt1YTBsK3ZHbENzRW5HSnlxOXI3bzg0djNnOSs0dGwzTmc2ZTdKekdjZmNZMC95VjFjSlp1TW54eUprbzFzUUFiZXdCL3pPTE9yRFMxRlZNa3lRSkI3bUZJOE0weUlFaGxFdkNSUUtTZ3RLQ3AzMHAzU1pkUTAvUlcxT2pqZGxQbm56eWl2ZnZQTk8rcmxoOCtZTjVJODdkWjk4N3J2ZmxjOGRQb3pkMy8wdWR0LzMzdmRlZlBIVlYxOTg4WHZBajlNSWNWWGNHUlJBTmNtb0hlQVY2QVo4c0F3Ry9NQldwSGlPRUwweXplOEFrc0ppTUU3V3FEUk9tQzNZbHJZMjhVU0FyRjJYclo3akZRRkxpb0EvL3JuZDZoRHRUb2NUUCt6eGVxVy92cUY0RHNXUk1BOWViWkpDVlY2WHgvejNndkx5OC9PcHpPNkhPWUt2UjdWbzB3a0pjeXdSV1FHSVIwS3dEd0J6bEdyejVUQmZ4UWRYRUNreUs3WElJNUExREt6UHJzbkhEU1JKU0ZDTGFxU3FSdEd0TFZPblRvLzlXVWpTcjdwV0NNQUl3NFUwbUtRbWlQbmRxYUZscStYL3dDV3g5bVJ6bVhqK1V5RGFaTVhmV2RneHI2ZS9qeHlNRER6Yng1MWFkblRMMmtlSDVFOEdSWTlYK0VEd0FROHFLdkx3ZmZOV05jeFlWSG1BSFAxYjJGMWJpeWo5SjBGWENvSCtadFNkbkIzRk9vREJnQ3A2RU96d09nN0lZa21JUW5BZUM5d0JtTXdyS0RwSGxlQ3pHVFZKVWtPRFZCaFdVRExvTENWUnNhWEUySUtSVlZRSmdBU1JJcUNNK0NSMHNrVy91M1hoY3ZrUDN6OFl0QW1WQnN2VWZWTTNidXBidEo2ZzJaNkIva1VMdW5zSnJiVnpIMXZJblhyaW9jZTZnbDhlZXU2RmxDTmFHbDNFKzRTNVhiUG5STnZiWTlObVRwL3Bua3VJZlM3cUtKZG9QSFlOeUxvTGFJMmlHaFJQMXRkZ3BNTTllb3g0eGFnYXNFNVhrWUl3Z0dGWGdoeEZGdWlxanNIb0tuOHc3ZytLUm9PSEVHYkxBQ0pYZmQwRVBXMVVkb2tVNjNHOWc2MnBmbHpSenNkdlU3WmpQMUcyajhvTFlNZUJ6NWJPcXBmdisxMEJkeXBXTmZhdW9yRVBaU3Z1UTdDWldzUjBDdUxZWGtBeUdEMUpaWFlFOFBuTVpLY2VBRGttOG1KNUhRdnJpb093YUJjTTRrRUxSNEJzL1JBUmw1QkNIRWNENHpCRHhGV05vb0lrdWdPQ3BJa0w5RThmVitqSnVIVVN1dFJyWWlLSGllVUd3M29HaENIUHRLNWN1Zk9KcFovOWZ1aTVYa1ZXOSt3ZXZIelp3aFdyS2l1U2pZeWY4UXJNU3U1SXJMMDkrazVnN1ltcmZ2alQ2a3BYaElncHRYTHgvRUdwb0V4a2dtS1pFaXQvRTJpS2M2Y0JuMFJSTXRrR0NKYzFrVkFEdkFsUXlDbTBzTEMwaU9ISW9xVzhIS0h5YUhsVlJSQXVMUXNHQ2cyR1lxQkh3VStNbnZodUxVUUlVbmR1bHdLSTJEVk5HMFgyTDE2ZUNULzdYM3VjOGIzOVc0K3Qydjc2Nks2WHA0YWp6K0V0MkNCdlgxb1g3Vy91MnpDOG1EdmRNTVhtNldlTlBiZHZhMjBhZW5UTDVVK3RYcmV5N2RqYVgrTGF4MHhqU3lwbXgySzlzWUh1VkQ5WlYyZUFuaWtnb3pLMDRJUVZnQXV4S3lhd0swV3dDd0IrR3pnSGRnaldHaXVrbERWVW1peFdUcUhSQ2VjR0tKUXRReDdSWGNFVCtpaGV3U28rSk1ybVY2VFdhQ05aSGM1V2ttZVVoMHkxZ0tpalRUcDhqWHdIV1RJK2dUblBIUUhOcW5XZmw5eHV2U2xhWnNsbkwzdVJMQkxjUndYQm9zZGczbjVZSTZYZ2x1clI5T1JVcHc1UUJqSGNCaEFEdzQvb3FUZlJLZDZFNHpRVFVGSGg4U0JVVVY5UkY2dnloRHhCb1J4dVVWSmwxQnl6VHA4ZHFjVVRrOFJyVEZaY3g3ejc3S3ErMU5CbFcxKzcrZWJYdG01Y21lcGI5ZXgxc3hhUmZNeWlXWDJEZzMza2p6dTE5TjdsZ3plSTRtMlhiZmxXWDkrM3RteTZWUlIyRFM2L2QrbWJxWTZPbnA2T2pwUWNXdExWMWRmWDFiVUVkT3p1QytmQUg1MENSbFlSSFhOZ2hqTVRqdmVBZFdNd3h3QnRQSi9XTVJVS0FHMCtIMEsrS2w4a0FPRW04Z1lLUTZxT0FVVUZzTTZVdGRMT0pDYkdvY1NTeDdESS9KSW9sSHhRdnE2RTZOb3p2OW1ZbjlhMXhhQmF6VlRKdUZOVW5lVFQ4dUY4ck9wYTkyMDdORjE3aDZpV29tUXdXNHBiMkljQm8xQWZ6Mm5JSlVEc01qdE1mRDRZTUN2NEhXdXB0Y1Rsb0dDRytuZzFKNkg0SENiM1c3NEtiYlEvWmtFbTN6VjJOQ2YzQlhQWUFkaFBvblB3b2Nwa3FFang4Q3o0ZUdadFprSVk3STNQQ3lpRHpJQ2ZNQU9xeXJtNFVKdkY0em40TUhzdS96a1JLc0thdXdhbHVHWnVLbkFFc0tpUjRLbWU4ZkZXV1RuRm9scXNaY1RwT0F1cnpwZjlmcDVUY3BWSVl5ZVpPVktKUzNMbU9jOS9XT3h5RmJNV2JxcFUyZUFUSFBKYjhsc093ZGRRS1pud0hYa1Y0VEM0MXp0QXZ4NUYvOFVKN0dGQXBDSUtKNE1nQThLSzFlbTBaUUQxMmdGMTJrVzd2N1NJNGxiZHBMalZmbWtrV3pUdU8zczRHOW5LOGZFNEY5MEJ2Rm1rOGFZZ2c5T3o0cnV5a0liVGRWbnBGaU5PaDNXWTZ3QStuUC9RcVhDSW1UTjJVdVVRYTJFT1VUN0lXMHdLajdDRUpaVkg4aGJnemM5QVg5K0hHRjFDZGVpNnBBVjBCVnZBWjRHeXFzRjZNRzM5d0I4amZoY3hnblFwU2lteUxMbGhNRFlpUjFKMzR3YkNHRVEwYnlSNzJFRFNHUWlBOHRVRmFxc3E0VWRGS1ZLaHJGb2E4RkYzVUkyREhaTmdyWGk5UFFmdnM4VnZmUDJ3anFsS0pLb1lDK05mUDN2bTNKU0NRY0tuSDJxYlBqMlZnai91b3pPUDdIOGcwbGZzZGhmL3ZFcnZ0TTVxbno2empFS3dmd2s3bDV5UGVvVmpSSGVQcVdzSCtTK3M1NDV3Y2RTRit0R0M1TndpRjJOa0lIeGltUjRUMWlPTzBYTWppREZqSThzWVJ3d1l3ajRFekFMNHBkUHhBd0RDU0dxSDE4M3Y3a2FvdTcrN2I4RTh1TkdjYURBWUM0aEJDL0hvR2FlbkxDMHFRQldHd1hMTHRrNkM1ZzR6SWJGZU0yVjJxWjdKc21VaVcvc2Z1K2Z1WHpKam1TMTF6YUoxUys1WXVDemc1NHNjcnBJeWJyYWh2RGpZS2k1OWRQdWVuKzlZZkhUN1Y2NHo2S3hPbzk1aWFmeldnaVAvY2VNUjdIdXFlbWExVkNiTWlFN2o0Z2MrdWYvR1U4TTlIYmZ2MnJiK3AzdTJ6ekRxOUs0OCtiVnlseFJvMzk1ejFmRlZYLzM0eml1ZkhLNWdTLzJsTnB1ZGQzdjNmUGpRaTdqbEdUazE5L3IyNnZxQkcyTHJFSFBoWThCMFo4SFBKaURDbjVKc1JFYXdQMFoyUGRMckRVTW1iREFJS1IzSHNHUUZBa3pDSWpGR3pVMHd1cEZnT2xzd0xwb05aY1NXNDBtZ1hNaXZuK1NvSTIzay9YcTJubVgrcmM2TWhYNDFrbDZpYlB1aTh0ZWlYZXF4VGNwMjBkZ2phaEQ5NXBMclA3bUdPK0lUemwrbUlEd0Y3UjA4bVAyTk5TcmJOK1RGK0RGRWZmTk1vSFU3ME9wREZZQmdkNXpnc1o0anVLSVdsazg1K0RBOTV2VHJlWUpmQWZNUjlLQlRBMlVTWDVVbXE4QWE4VHlCSGpvQXZ0dklCVHE0QUxTSlhhbU1SenFkTmh3V0VFSTFzVWk0Z3JoeUgvTDZnMDFHYlFIcEZieVlpYzB5TEdFMWpBOHdtVzdab1IvT24vUEh0Mzg2OW9KQy9XV1hxVGJMZVBTMnBVc1dMNy90eFplSFZyL0lIWG5zMElJZFl2dTczMzVDWVFKclZMWnlLRG10czIzTXZMOXJGclZqNndHZnJBY2ZIa09keVdRbEJvaElQUTRzSEFLYitHRTl3QlVsK01yc013dzFDMkdPSUY4QTlNR2dLQVVDQmhYT085V2NwcG9DaGZrcnVGZk5DQ21SY0IxTitYTlZzYlpaMWZYT3pXdjMzLzZOQS8zZlhGRmdyZlpaWTJkL2ZmVFRXL2IrN2U0bkZqY251Vk9BakVjRkwxQzQ1cHJYenB6K2NYV05ZV0d3ckw1dzQ5M1kvZHhwN0w1N1Y0ZG1BMXBCbnJ0Qm5oNklmSmNxWWl4U3hLZWo0dUJ5eENlbHhjY2hEc1JIeEthTUl6QXNMVGFJNmdPaXp3czNMUUVWMTFPUktWSDk1OHVMeGVmMzdqMy9oQnhXeERNOHJDcnJiM1p1dVBmKysrL2R3QjNaSjM5MDVvejgwZjVjQVoxdmVPbjA2UmVwYkFnOUFQaFJISDJtZ04yWWtxdUd1YkljeDI4all1SVpGZ0l0akkyd09vMUdBV3c3eCtsV2d1S0pPcElac2NCVjFWbFhzVHczK2dVdUk2eXJTU2ZHditoMXlWWmtBSmhnMkRiaFNqMEhLeU05WDFBczQwcmxlcFM1ZkdDQTV0V0IyZ1ovc0ZHMFNYNUh3RXpLY2FwT2dmZnd1Mmc5VFFlclFRMzA2YWxKQmNIRnlraitYTDc4UXhMcGZvanZhZW1jVmdOaC9tQ3VQTmpidVNObG92d0xraXcvTkVaaUsvbWRINUV2OGpjRlg2NWtjbVJTang1U3VCdlN1S3VVRDlicmdUdUdJYU5pS3RQMUExN2o2dmpLeE1YSGc3VDF3R3I5dHZGWEFQc01LeWRlQU93alU2eEh0Y1FVRSs2WnFDbk9jTS9tcjFNTXpXUnhkamJycGltc3V3N1hFTjdKUC90WEZSNGRVN1kzcWdWTTltZ1c3K1NmRXViOWQzYWduV0VjUm5QQXpod0ZPOU9PdXBLem1vRXNGMkFNRWlrQXFtTTRyZXBpWUdnbUJLTHM5RDdEYUdVWE9OeU8yb0xCWUZ3QWM1Tk5YSTY1U1RSbUtFbG5GbXlxRDg0MVAxYkYvR3pZU016UDF0VXZhZjVFMmZvY3R1VnZYNjJZb2ljWHFhYm8vMUJUMUxlQ21LS3lSN0lkakR4V0pCbHJhalN6ZEZVQ3pCSUdkSWE0ZTBCZkZoTDdpc3hnYWN6Y2Vvdkp3SkxhdERXUG9ZdUlaMGtlR3F3VXpXNEJuUXZSL080NXMyZk5uTjdlb3ZwVmZ6QS91elJ0bTB5Q2Z0dm55elhERFgrMnRKV3lkRk9UNmw3M0tkdE9lV2RuN2hGdEJMNUtIWUZ2N3RTTzBEZ1ltSEErUndGd1JQNzFaQXFoTXV3VHJGY1ZoT1RuRVNjQW4wSUU2WE9BcFBraGt2WVRVc0FaWUEzU09CTkNBWm85U2lmOUZIcnFKa0Q4Ykp2OEp6ckx2MktVQy9NeCtxdnFPMzh4K2Z6VENvelJhbHJIUFFMaGF6eFpYMHh5cmoxa1BZSVBHYzJlTFFKSnJnSmREaE5nQklORFlpQW9qcHVzbXNRanFRVXliUnVOMGJQcUNhcEFUdi8yNTMrK3Q0QXE2SXpoQlF0a05jM0Z2Sy9OZGV5dUYxKzZzMERBMDZsS3l1ZUYvbVZNZjlwVXFicjNPc3g1SlpxZjdGME12cThLSW5TU0FRS29nc0VxY3d6ODIyVldsVEhQb2lvalF3SmVIVll6ZG5EMWlpVjlpeGIwekFHK2krRjRreTFvemRaRVhFYktQVzRTdldmVk9VbXdFNHFSZ284bzVHUFhGOVZMbktXV1g2TGtSdVFIcHd3SzdtQ1JaQzJzOFprVUh1eHZXeXk1aSszQmdwS2tVQ1hXYjFmMXRDSVhFZUd2S2R0cVBMMVJQYkpINDUzOEdKdW84YytxN3lvS1ZDaEh1anNqVGNHZTRsQlVxSHZ5YzNUMlJaeE02NFRtQ3lKb3RRWWFHVVJ5VTZNUVNDSGRFRVI5T2dWMWFBblFVaEtXS1VQQUVyQ1kyNVk5RW1VR0RpVHpFYW5DaFFuVGJVR0tyYkpXcjZZNkYzTit6Q2VVM2pmeEVOV2ZqTnU3NHc1Vmk5YWx0UWpqS1lvQzFVMTBlQmlaZ01hWGdjWVVzVit6QTE2V0kxa0FqdWdRSGpWZ29qaG0wMFdzV0FwMXo1Z0dCRWdTV2JHV2JLMXhUS0lSWmlXTURKbng1MGNKV2xPVm4vc3lwU1Z1YmMwMVZJTzZyK2ZGS2lNeDZ5SGQ4dHd6TGZseFZSTThybExkeVdkMHBTN3NuWHp0TS9Qa0RhTFhLK0s3eHA2ZVRCK3NOdG1GLzJLemtuVUd0dUVZOEtnRERUOVRYMEFLVldvTVhncUxpWWdYZkptaUNReURoNGxCQzVQaXRXL2lXWGFJaUQrbEdCREZuM2VnTmdtNEY0ZEFsTHE4SERNU0RHSHhVa1lmUXJGc2E2L3dyS211TlJhMXllM2MxdHlncWxPejZJYUtBdndBcDJvTnZqck5vejYvdjlqRG5CdjczbVE4S1IyYmo4YzAzV0ZRQi9EbDF2L3R1aGxyK3ZTV1d6NDllcFIrN3IvOTl2M2tqenQxbDN6dXVlZmtjM2NUOS9zY2R0LzEzbXRuenZ6d2gyZk92S2JHQlZlQWZBSVFyS3pUVnFvT2tiaHR2WjRpS01NRVYwTldLc2ZyOWR3MmJTU0V3UHpLaVFNcGFJMlJmSGtBaVJSNUdZbTFWMkRxSlF4ZkpsaTQrVzkvZS85dURXYmRvMnp2dkZOZHErTGRWMTk5N2JWWGd4Qisrc29yUDN0cU1zNlBIUjljdVhJWjRibjhiNVRuVFdnR2VxWDdTUWZRYXFyRFNLOGsvMHVUWnZJRjk1Z0FVbllQS09jbHBBY0s5WWoyYlBFRExDZ3BLZnV2SmVHK2J0aElxamdHQWwrOU1EYWdqYVVaRkZwR0lFNWsvR0NJalZsYXdSc2w0MWx5Nzg4WkRzalYzZHlNVVBPTTV1bkpkcGo2RktuQ0lZbEJNNDBvVlZVSTZXazJKU2V2b3RmS0VHbzFKVVRiOGk2dU5NWE9qYjI5dmhrK1QwdEpiN2NscnpDUzd4Q2JOamRKM2ZWVEY4YXUycW96T0NyekMyMW52bkVNeHU0N2VIQWYrZU5PM1NhZi84NTM1TTl1WXpaNmpUcmVXS0dUZkVGZlpVbWxhRFpaek5XczVBbUpaYmJYMm5EUks5L0IzRzN2UGZQd3d5ZFBQdnp3TTVtWTlGblFQZEt6dFAwRXJIR0RsbUVRa0FIT0c1Z1J3Z1U5eEZPa3FzU3pETW10Y2twdXBSVENCWjNlYU5SdDA4WWlvMUcvY3JLaE5ML1EwelZ6T3Z6U1ZLS0c0WGliV2FzY0ZuNnVoNzRJbXB4TVRaZi8rei9qNVM3UlhaVG5yQ2gycUpIVTNGVmhwOGNwRmZwNkdwTnFWQ1UzajB0TzVEOTYxN3BWcTliZHhSMDUvZFNmV2wzaDBwWm9qY3Z2VjFRNTJTMjJ4VHJMSThFTGFETGRsdkdjN3U0NW9FQjNnVDNwQU4zdVFxbGsxMHlNZFQ3TThBVFBZTjJ3UWMrUWFpUHdQTE5QcWxvc1dOVndDcEgyRHJwTEhWTVhtak45bWhTUXFxV0FNU3Ryb1dnU2lTTGNDc2VVbEY4b3F4YWthaUJoaDhLOGtNcWtPcVdKa2YxVlBBTHhsN242YThOekZrcEMxV1ViYm03KzV2TFRYM25rU3FVZFVReWI0M2V2V1RJWURwV251dnN1ciszcFcvWFV0bmxmcWFzRnVyeUMvSGZCVzFEUU5iK3J4UnV3MnV4T1VScis3WmFqZzJ1REpOV0pld1d2dlhEOWh0bkppb1Nqd0ZsZ0x5dXAyTE54NDBPRERUVUJrZ0hCYUJYbzJrYlF0U2hxU05icXNCbzJranlkVnJUTStCZ0s3YUlvSXBMWXdoRlFxNVkybGRLTE9CVmJkbEdzcHl6UmxJaWMrSzFxdFBxVTdXOVBrS00rZ2QxTFk4T2wvaktZT1lDTUhOZDZRZjVQZXZ4aFVpVERhbzhreVRtUzNoeWFYbVNIUUlnMEYwTzZIOU9BT29FYVJaRUNDbU1tS1V0OG9kYVZNMm5vcHdEc0NSRlA5WmJYRHh4NGZVdDFibFNUMnJKaXhaYlUrTGhtN0FmN1hsMjc5dFY5VEZNMkdoejczZllycnRqT0JETDVnUXNmQXkxbmFTMFphSkZvellSWEtkTHJGSW8wWWtqTkdOQ2RtSXZ1VkJDRUo2R2tOQnNlUDBGbk9GMit5OXJjMXRhVUp6K296Zm00c2gzNHpSOW5hVGc0N2IwWFM5NHlrWDBzaDRaN21iVlo4LzhyelA5ZG1QOVUxSnhNeEdNMkZ1dElOUnlSMnY0b2dYaWdZd1N4Y0p5UVlyQkd5bFRVUVVDZUZKUnlRUXByWlJSRXA4Z254RTVLbGJKOGNxZzdSV2MrWlMxYldCZWIxbUw1NW9PVzFzNVlyWXNkcmxOcFVnSGRqc1k3OUJYVmRWVzZPK1BySjhTaWk0czlsaklSLzBZT2kyVVdUL0U0dXAvRmo3dUxIQzQ1eGN6T3l1K0FRbElzdDVCVU5HZlhseGs1SWtLVFVRK0VHNFlzWmtaSmdTdFFsODhOMkdmTmlJTkE2Yis4YkxCcm5EUVpQbGt1M0RpWjJOMkpMTWFNS0l5UlA4WmlXeTUwYS9qT1kwSDF5S2l5YmNlaS9FbHJMc01pZHh3c1VvOXNTZ2REZStVcnN0Zm5oeC9tQlBIMzRLM1pqUHY1ejdOanpBcmcxMUhnVnp0S0pCdUFYU3hobHg0WVJHSmkwSk5KUXZoMjFLcXhLVWRaSmtkTGwxd0lOMUJxcXVSSFgxVXQwUzVsKzZyOGVDeVg5czdUWnhvbkxPeVA1R3hpMFFYR2xCUHZ2WVdsZEx5M0QyaWRRbk1VYTVSOHJLaDBLMjNMOURScGFZQkw5VFJOSEtmME5JVlFRQ3hzRkF2VEdZTjBTMU5Xc0RkSmU0Sjc3R1c4bFNUdElOVDdCZERvWk5ybDQrUTdXT0lDU211YjcveC92MDBUbXdkb25EZXRsRFhTUkNkZXFmU01ZQ3pJVDdQMzg0UElUWEl3SkVvbEQxTnd5ak14WE9hWkdCanJSb1ZTWXdOcG5lRFUwb1U2RnpYQmFQT3pYeUtaUTRZNkxwbG1FWi9Iblp1cXAwMkxlUVZkUlBDU3ZjK0tsZCtOd2U4K1NuKzNJaGtndjhkZ2xsbWZhWHRNdHlhNmtjc3ZOZkpLMmNTbS9pNzVXWnUydzk1SytnY1o4b080VTM2ZWJtViswQ3Q4OG12Qkc1czJyWnI3RS9sVWRQY2wvQ3ZPREhqQ2k4SlA2ZFpNVDVhNXJhU0NpbnVBYnNUc0ljMlJWOEZBTC9JRXc1eWhLUEtVRGswbnBTMWFzdEZsREZzbzNhREUzRjV0eE8xOFBDeDR2R0g5YzgvcHcxNlBFSTd6dU4wWWkzQ243STZ4KzAwR3QyZ3k1RnZ4WHZrNmE3N0JKTG9OSm1hVnd3NjI5ODJ4Qzl3SDhydkloc3JwZkZ6aldhQjBmdEpwVE1oM2NXOWJkVHByM21lVmVYVExuWlhmdGRYVTFGVGJiTld3SWJFOGRySmpiQU4vRk81ZlRPOVBZbGVsUmJMSW1iNnhVcVlKQmJSK0paNXRLQ3lYTEdaNXBLaWlLV1lyd011NC9jRFZldDBibHZKUXZOdDhRY0c1VzhCdjNNc2VSM1d3dlArZ3REL24rN0NCYlcwQjNPb0FDbGdJUG5LTzZObWVBU1ZNRGtOb1FQcXNSa21Qa2dHeGhoRlNGcURSUVNTbEp6d1labFJBck55NS90SVhBTGtpM2RVYW0wcVR0WjkzRlVwZkJIR2VkZzBKVE9yckVhcHZyMjlyU2dCdHRTS2d4bmlqV1FPTmhibUFPdDJPUXhQTUpDT2RhZW5PZFBmSEU0MFFrU1JlRmNwOWlqVzZ2SDJvZU82VHk2ODQydi85NDN2dVhyU3g1ZUFzbTZVNFZKQWZHM2h0eVlOelpuWE8rSExMemJ2WTQvL3lsUHhPUlZReFRQV0p0czdVVjRjUDNGUG03VXg2aS9oQVZaV24zbFplUHZaR1hVMTFiYUltV2FySXBSVGtjaGxmamlwUk0vcUJ3bTRUQ3dHY0RjTWFBNUdvWDBndVhwVUdHRFUxSXBaUzVERUlHcWRIVWpvYXZhc3VYNVZEOU9KREZYdXZYb1hVakVjRWhpSU94REJ5NmRIQSs4SklCQVkwUjVycWEySCtGZjVnWXpCZ1VvSnJXMjRqR2cyMkp3dGQ3Rm90WHEzTjQwUGUrcjI5dTEvZHNPSFYzVU9IRzd6Q3V5cnEwOHB6bnJjM3RMZHZTTFlQMXRZT3R2UGxZRXlXTmJXTnZ2V1ZyN3cxT2pCdmtlQlZpOGw3MWJEN2lkWWQ4K2J0YU8yNHNyZjN5ZzZ5Um04a2ZYZDBIWFFtazdHTDFGTWpXZlhVeUxoNktpaFpNQ1FHZ3hQcXFkbWRCWm1TYWxhUGxGTFVZRDlSaWhyaCtVMnpON1cwYkpxZCtsYVBQVDhxMkNQTDMxaC82UDBiZHYzcjNnYzdtNVBzY1RESkw5REVYK1hzU01lT1ZHcEhSMTJWYVc2a0xGclUwTHp6clFNSGZuLzlqamlKS3hnMEREUTlvdXJRZDVNbUh5eGRHMVllSHBoTVljalRYaXlSNjhTRkcvMmNvVU4wOWVseWxxeWlNQ3pQcmIvMDZJa0tJd1lEY1ZGVG1Lekhib0p0T0p0dGhlNHNoVUhqRkliOTBLdjJJdnhaOERZY0hsSlVwM2R2dlpxY3diMXlCZFdWSk5VYm9qR2YvVlZSRHErd2FONkFvanB0VGRpdGFZeWlLNHJlS0d0ME4vQjNMdWlNSDl4L1I3STFuU0htNFNTUGFCOHROMHdTVlJHYUlpWmNDTE85Z29DUUVCS0NrZ2dYbG9jZEFnUnhKV3B6b09pL1NQOEprS2pUK3dsZGxyT2J2Y0xZTHNjTksrODlZYkVVbHVlWjNDVnJmcmJtMEZ2YnIvbjNyNStNNEdkdFcvdlk0N3ZQM1MxNDVpMU9jQlUxZ1pJU3I5RWYzUG03V3crOHRmTzllK1lvL2Q2UEFDWmF3d2RRRTdwY0VYRllLMWNhTUtQSFdzSFNPRXpxdmRLNENtZElHd3NuNFY1R1BKSzVLS2UwU1F2REpDOUVFMnlDV0VRTHc4cGpKc3J6SmFMZ3hSbjBNV2s2UTJtU3Btdmtua1BGeFNhTFdHU3gzVGgwRTA1UWZQSkRYS3dDU0RWSGZQSWtPWDd5NURFKzBHVDBlMHFrcWlBZmVyaVYxb2luNXlEa002UkRlczdwbDhsYWtkZHhqNEFzYTFFSHVrTjVDaUdJZWIyMlZpSUlsSmxudVZHVGdad2FOdW9ZMm1PbzEvUEQ5RGt6clJVM1N0US9uak5hYzFYS3BVUG9vaGVDMTZxckEwdlNVZGMrSlU3YTVBTmlrUmhVdlpaYmFSVWZsMFpPOTZRUi81U3pQTVoxWG00bFJ2UFBDb1A2Ly9MbnZ0ZVgxK1RsQjRyenpDOWNlZTBtTUswM3ZicHg0NnMzTlc3WnNqdzUwdFkyQW5abVh2ZE16V3lPMWIzNkc3ODNQMTRVcTY3a1d0YXVYNWRvdmZiWFgvN3lyNjk5NzhidDIyOU1iTzd0M1p3QVBRQjR4ajBFOW1ZNjJueUNKYzhmcVUraFNzaGdVQm9QcEhTcmJHUjgzYUUwS1JCdE1pQWo5ZStURDFJVWFqcWkxUW1hVU5BNkRkVEN5bVNSQ0hIb1Z1ekZuNThzdzQ5N3IzbDAyUzFkcWR6S1EzVzhvM2xEUjNYdXdZelhvWjZtNU9TOE8xZkx3em1xdGFaMzN2Q0RnMGR5OG1KN3RRRHN3Z1c2L3Vid0N3c0V0QjZoQWdhdHN5clBVVDhncjJQdnBjZlgwcWVvMTZGbjZYcHRndkVIZ2JkVDBSVkpZMGZNYk9KSWdLL3hWMTF5VXNwQWM1S2dYWUdVeVVoWWg0WmdvU3FOTXdJWUprNFBUdnppZ3hUK1RrVkpxWUVXTDZSR3dsK3BVRFhBSVZaL3FaSWdpQ0lncXFCZTdmblFPK3E1SFI3eTFHT2Q1L3crclVOczFYaFdnaUhnNmlqd3Y1OThWbnp5ajdZM0t0dUFleFY0eGNpOHlSZ0pkakQycTJBOEVRd200c0VmeWs4VFB0MEhmT29BUHZuUkxJVTVickM2M0JCNUJrNUtNV2tQUkZDTkN3NkNqK2ZZOWRuSGxjZmsvTWhIS25qcVkzS1hxRk16UC9KcU51aTgrcXdudHAxVGQ0NHFybVZ5UmNBWFBvRDVIZ0M3MDRFTzB3ZHVubWxOTUVTeWdQQmFNYTlMQVBhZ0NJODhpd09ZWGpFbkJqMnIwd1ZTSE1Nb290WDhPZW1IMUU2UzRIMlNvVWtmR1RXRXRDRnF3MFlrUFdKQUsxKzFneE51RE1EL21ZNE4rc1NLVFduWnVOalh6QlAxcExHWjJpYnkvTEt3MFN2c0ZMekZwZFdKM0IyMU9lRVloSlkzOW53dEVydHVGbnY4N20rTW5TRVJLR051ckx2amdQejRoUDNiTlFXNC9Zb3JmN3htdmJvK25nQStUa2NqSjZhUmVGMDEzQjdTcDI4WU5oa1pneUV3dmdleU5Ca2tweFVuUnlJUUdEcUVKaG1vMlozT3VHWjR6R3FpNlAvWjRpajhBWjgyNzM5bWN6NFV2RGQvSDZ6ekY3RTRES1B4NmVENzRPTzJBbDVaRGp6S1I3N2N1bDVrUWwzUFYxQldWSmlwNjQxL3Vwekp3VnFNL0lmcnIvL0RvVVAwYy9iR3BxYU5zNVZQOWpnQnBHL3RWRDdmVXhDVWhya1pGSkIzY3BmQmZHcFFFdDJjTkVVeHg1c3dTdnRjeVVUU2xUenh0VHhQWGFZeXhVeGVLa1RjUmpVZGx1VmtWV040c1N2QXk1S0h2bXFUdFIwUUc5YWdhaUpUdFdpVmlVeHNsNWJkUkVhd0hScktWRnRjWllQcWNYT3c2SWFzVUlVOXJpRk4rWndpclBFMkRzRG9lN25SQ3NYMndMdEhNcndqeUNLUWhWZWt5WEZLT0ZOSkNMRXE3ejRmb09SZU1ZRjNJdWtRdUFoQ21ZeURuNk5FT1FpbFA1ZC9qNlNEdjhJczBNNGV6d3J0emwrbmJKVlA3TmFpdi9mRzQzYUk5Y0JXRUwyTG8yZG9MK0NKZXZMc1cwOHAyV0pNcksyRmxreUpPYVUxcVVDSzVKVFNYN0tyTWFydHJjcTBUbVl1eWhTNHhsMlRBZHNaWTB3YjZVaTFKNUl6ZGtCNStVWWNOU3FteDAwTEtKbkg0bFZMNDcrRVY2YmF5bjdZWFdXM1I0dXRCVk5hVTN2bll6V05NYlpJclZ2dlVGMldYZkIydjdLR1BUNmx2TUVmamNZTXZsV1BieHlhM0s3ODY4SDdGSjRlQmRzU28vYTNKemtuQ1lTWGphdnhSYkpxZkpIUHFmR0JrWTJKQWFsYURHaXZHYUY5VjJxRlR5bndhY3MwOStVaVJKbElmWTlXK0lMWm9mV1A2QXRGV2c2dGFlbnNDcTFZZm4xaTN0TGxUKy9hZjdYMlRwRzZ3OHUvR2EwcVhyYjJZTXUrRlErdC8vcU8yZzcydVBJbWtZN0dTckhTYmpLYUN3djlWdzBQN2UrZWxYNlBTRWZ6d3VJeUU1OW44Zmw3anZaL2FjWWNrL3I4TTRtN0Y5UGU3SGl5SGx3UlNZdU82dWp6bFN4OXZsSnRrTXp0eHBiRUNsR1FKSzFBbG03NnREblZ2SUVhRXFxVlBqVXNJdGxieGxudnhOdHBNSFRyVGJIckZ4VG11YVFDdTh2MWs2OGZPL2tTT2Z4UzJ5enVGRmxPNzlNZzZNOFBod05Hc1NMcUtmU2FON3g4R29za0RNSWxTdDhqelAxcjdHRTBCYTArWWN2eW95VWt4OE9SNmg3SGtaZnlaT2NJa3RMRWswcWN6MmZIK1ZTUnA2QzRGQURjSGhlMTBtVnVnSytiVUEraytUcGlKdHF5cWdmc1g3eXEwM3lYK01NTWJzY2dIdW8rdFdheUlIc1ljT0xsR1VjSW5oTS9vR2d6WUhkcnR0Y2tkUkhTN3dyMFg2d09HUGpmcWdQZW9OWUJmNWMvZmViTWFmbnk3NmZsZHI5MVB2VjBRajB5eWg1VzQ3QkJzYXhNWkk3bVZEcG00VlBqNjRBdy93NVNCMnlvS3FCMUhhVGpFS2REdVhYQVFGWWRrRFFyU2NRTGl1UHJnRGlUTGcvK1Q4dUE0VHNNamEzTlUvSU8zR2FkMHRKYWIvaXFvQktrUGgyeXVIdWZ1U29jaVpodjZaMnRaV1V5cEpLU0oxNHQzeWVXZWFWeEpPL0VDejNlb2hMNVlYeHpkazJMUEJleUYyai9uQnBnNEdJMXdKbTBCaWdXanE4QjZyOXdEZEFSdWxRTmNMSFN5L1pmbUszUExmaFpkKyswcVVmdVY3WngrZU9HM1BwMjN1aTFoZXFSVlJxVFBwTS95VGJMZS9mbUFFTERwOWxNMjcwN1hRK3JrTmRTSFUrUWZvTXFOMjE4MDZtcW9hNWhSRHJleU90U3RQSTlNRWR5alN2Zll5dWoxOUVYRWJRemlTK284RW41cHBrM0hybEpDcFFXejEwOXYwbitTWGV1MnJjZU94WWZyL2JuLzNucm5XMGNudEpWWDhYd2RadTNNRHR5dE9GbXZEUFQ5MGhyZlVCYmhOVDZyQmV2OVFXK1lLMHZNTEhXRjBGaDBSMmY3UDBGT2EyZGNhM2NGOFBVUWRGNm45VSs5aEdlMFRDek9wYXZWdnlzZHNZcy81UWU4UWxzQ1hzWWFDbVZIR1BuZG9vZVMwbXgvRTlhOVlNampIdWJja1FzZzBrK0pEL052czhQUXF5K0tXbHRnVUEySDZZZkJnZWp2ZnFyTlAycUFwS1VaTmJTekRXaGlMN1V4azllcFlJNEhvMWtob0hJeVZPUXhGNWpabjQ2RlpCb3JJNUtncmMwb0ZkZndtR2xDVzBmQTNTN0NQbjVXS2NnT2UyWmVkTE1wVHdycjZWcTRWczFEaXErMkdNcExWcDFXWWpqOGFicnI5K0tqVGkyY1dsUnFjVWpmdllCbTRldnZseXRyV3pISnZhRDgveGdwRDBXSzRnczZ4MHVHYmxGTkFuNzFqbE51eTFGbmZOQytiRlllOVZUcDcyK3J4b0tGaSszeGFxcW9yYkJ4UVhHeldXZUU4ZG9mZktjZkIvekhrL2VhUkpYZUpMNy9oSHRSVWdERTE2RWxIbmhpU3VyZFliNVRuemF0Q1Q4OGR1OHdpZmZKcDB3dW42L1VvTkY3OHRQY3lHUXh6UTBrclNDMitOcTRKNXVERXFWbGdjTVk4a2IxcFFIZzVIMk5xdEtUcE1IcmJCa2hnRUlIRURLYS94WUlnL1NXVHdOVFcxdERvU0RZWDM2QlQ1S2NVcURSUEROaHdzMU9iU3IrRnBoZnFJeGhxbGtZdWw2RitQL2dEWGg3UnJUcjhaNTdBZWZpVVJFU3pmR1FEWmJyOTg5b3VOeGRNTWdGUkUvZU95RXAyeXpzV0R4b0MxYVZSV3pMVjljWVBpcXozdjZxU29RVTM1b1htZVJaYmZKdVc2ZllBcmNmZVd3eWQ0NU4xZ0Fjb3BRSHQyRUQzRGR6Qmd3LzNKU3gzeEdzSUpqSlFERG92Q0haZENBamlldlBBREVSQmpCUUhUS0lHWStBY3pBSDJEcktLeFRodVVBT0N1ajRTZ3BEU3FERVJtcjFlT0RvaFFTNmF1QTFQTHZ4UHFMMmplbTExN09RZDVVOGQ2S2FZMWRVcWl0M0Y3b0QxZm50ZXhmR2g5T3htZUwyVWVZTVZId2VNc0ZSeUFjc0xuNmwwaUN4NVA1cHNSbmJ6R043RXExaHpaQnE3WlZIS2txS2FSQlVNWU1xREUzZytaUDBrcWJYU3llN0tWdXpJNnY5ZmRyLzJKVHA4YklIM2VxUCt2b0w1V0RzYW13MEFFWEJMbjMrTzBRK2RlaWVlRHlucU56Y3BneHcvckJTeTZvWkhqVGRLdzNjK3FyZXFZQWY5azl4QkxzUWJ6SmJPTE5venFPNU1rZ1F0K0FUTHpCTkdDMTVMRm1JOVlielBvUlpESVpWaUdEeWJDQVBFMm1YS3FEUzNWWWw3NmV2cHp5VXBjUEpEM3o1OWZWelY4NGYySGR2THE1UFYxVGsyS3dxRmdFV2RhU0oya29YN1FHQXZWdE9GUjQycnR3NEVOU1h4UVVVdDhVVk9lMnEyMjkyaE5WOU9xRStvWlBXNzJZMEROK3Axc09Gem1jN3Z1dXpNc3JjK2VWZ251enUzMkgzRTVtc2ZOOHY4VlE2aTF5c3Q4bTI4c2hEdW4yVmRaVXltODdCSjBCeDYwUk1ScnQvanQvTC9NVHdSOE0rdkhscmZyYVVwY243M3A5aVh2c24wTEFXT2l3alAwM0g1Vmd5eGo1NkZpdEVBajRyM0k1bk02cnBvcjVJSWJyN1BiaVF2bldIL3dBc1NDckVQZU9LcXNoN0tLU3l0Y2tOUk1rWlNCR3BSaWtsQnpIYWlQbURSWURieG5Od3hhejJYSjVGc3VSZ1RjWlJwQlpyemYzSTdOWnZ4THB6ZnA1YW4xdjVnU1JHWXdHM2ppS2pCYUQwYkxyQzk4dE9ldlNOekpZekxzdWVTY0llNHZxNnVxRzZsWXNXN3BvUWZlY2NFTFZBZXYvaHc2b2J4Y2lBeWQ5dFZDZDhsQjh2V0lZdjdnK0RGVFlYYksreW8xdE5aR0dXSHVOTHh5cEtJbnZtWHJ0elhON0h2cStMM3d4cldnWnB4WG5qenVkdDduc2k2TDJYNGtKWDBYTTFVVVU1S0RiNmltN2J1M1VqWWxyUWk0SFdjc2YwN1c4RFRXaGJyUVJiVWJ2VXcwcGlwSVhLWUtXZE9RRG9OczhtekhrcmNZbUk2L2ExNW5wTGdwRG5qSFBZQndGejRISXU0Mm9Rd0s3TktJblFzbkRhS1FBNXhuTWVRTldiTFJnazlsb0lnZnl6S3VRT2M4TXl6dVZ2cEdlSVZXL3lXK29oeHVpTDNDL2dhVFkwNFBRcHN0Nk52YU1yQndhWE5xL2VQN2NHZE5iVzJqWlVHeW9qNFp0RUY0cE5qenpNcVdzeXBjYTltZmVwcFFsV1ZXd1NEWDZHWVd3cTJweUVhdkExaWZ3WGZ2WE5iWjg0MERibmhxdjBWUnFaWFhWNjZ0MnhxcFNUcGZMMmJhaEtUNmx1YXh5UVVuam51bXNpZXBDUmlkaTBlN0NTVXpFTzNmei9MYXRxMWJYT3VjMWpWeFc3TXp6MjRvOFpZeWphTFlZRUlKQm9VY0l1bXBkam9yUkVvdTdaT3lQVkMweTZpRi9pOWlIU2N5R3ZPSUg5SjFyNjloN0FmY0tLSmFNcE45V3BaVStBdWtFYjVTK3BVcEE1WUpVRk5ES0c1TnhOT3ZCTm5hWDkrU3h2bFBMb25aN3NOanFXbkI5N0NaWmZkTXQwMHpDNi9ON1RyOWNHeXVNZWlvclE0WkErR0htWFMzV3dPZTRXc0JnQ3dGU2hhaVdlaVppcml6QXBZZzU1eTF6anpZMXpweloxRENUWCtnVmpwTFV5MUhSbzlhdjV3QzlmaFJLU2xsMFpwZHkvc2QxbkY5TlVzZjV0YnB6dTVKSG1Dd05odjR2RWY1dENnQUFBSGphalpMQlRoc3hFSVovTHdIUkE2aXRla0k5V0tnSE9MQk9vRWdST1lWSXVSUUpJZ0ZxajdDMWRoY2w4V0o3RDd4RUg2SXYwaHVxK2g1OWh4NzcyM0ZMcUVyVlhhMzllVHovekt6SEFKN2pIZ0tMNXlPK0pSYllFTzhTWitpSUl2RUtYb3ZQaVR0NEtiNG5Yc1ZHOWlyeEdsNWs0OFNiMk1vK1VTVTZ6N2o2R2lNRUZ0Z1NLbkdHZGZFaDhRcjZva3Jjd1J2eEpmRXEvWDhrWHNOMnRwMTRFMit6OXhqQm9NRWRMR3FVcU9BaHNZOHVlamdrbmRPaU9RZXZOdnBvamhKbmtXZHhMN0RCRGJtSTZpRTlQWFdHZHNmMVRvenFtY1hoQ0lwdlNXM3dhSEdObkNyRFNBcTNYQnZhTmVmNTB1cUt5cUJWZjFUeFVNTXVvMkJrbWp0Ymw1V1grOTNlb1R5dnRCeVoxdGJheWpOYnp6UkhjNk1MTDRldHI0eDFjcWZ5dm5GSFNwVzFyOXJydkRBemRkc2FyOXQ1bks2YXhxa1VJa2JZRFZtZVBBZzh5Z1ljMDNQS2E0RmpNK1Y0d0JyRHFmWXh3QVFYL0lha3AvNW83MEYra0hkNy9jSGtZakljTEJlenR3ajdyOGI4RHZINEhCYkN5eWh3ZERZOGJibFVIeTYxZGJXWnk1Z1ovMVBqWHdyNzFmTkZ4eDI3SEhRTmJZNlpRdDRwNTNCSFN1NmZZb3dUaXRnUk5zUVZ0bTY4eTEwOXpZMHQxZW40QkQ4QityR29lUUFBZU5wbGl0ZE93bUFBUnM5ZlJoR2NETVV0YmxHeHhWbFhYQ2k0QlNlb3BURmdMd2cxQldPODFVZjFQWXltaVRIUmMzTytuSHhJT0h4KzhQWXR3VjlNcDBxNGNPUEJpNHlQQnZ3RWFLU0pabHBvcFkwZ0ljSkVhS2VES0oxMDBVMFB2ZlRSendBeEJobGltQkZHR1dPY0NlSk1Nc1UwQ1daUVVFa3l5eHp6TExESUVockxyTERLR3V0c3NNa1cyK3lRWXBjOTBtVFk1NEJEampqbWhGUE95SkxqbkFzdXVlS2FHL0lVdU9XT2UzU0tHTHdMU2JpRVczaUVWOGdocTFyU2F4V2padXBsNjlsT2xHM2pJZmpiNmkrV2t5SjEweTc5TzhxUGxkY25VOU44amxWRitSbnFGekxITlc0QUFRQUIvLzhBRDNqYVkyQmtZR0RnQVdJbElHWmlZQWJDUkFaR2hpU0dGQ0F2bFNFZHlHWUJ5ekFBQUNmVUFqVjQybU5nWkdCZzRHSUlZVWhpWUhaeDh3bGhFRWt2U3MxbVVNaEpMTWxqMEdGZ0Fjb3kvUC9QQUZLRnpCWmpZSFoyREZGZ0VQUDE5d0dTUWY2K1FCSXV5NWhXbEpqTXdBRmlnVEVMV0M4alVJUVJhQ1lUMEQ0RklNbkd3TWVRek1ETUlNUWdDcklkU0l1RDFhYkEyVXdNSWd4aUFMVzJFeGw0Mm1OZ1pHQmc0R0t3WWJCallIWng4d2xoRUVrdlNzMW1rTXRKTE1sajBHQmdBY295L1A4UEpMQ3hnQUFBV3hvTGF3QUFBQUFBQVFBQUFBRFZwQ2NJQUFBQUFObWNnK0VBQUFBQTJmdEpOQT09JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG4ifX0=`,"base64").toString("utf8"));return t(`metrics/setup > setup > success`),a}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return v[s]?.name??""},get mode(){return k[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(v))t.test(d)&&(s=e);if(l||(l="recent"),!(s in v))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in k))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!v[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > loaded ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(JSON.stringify(i)),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:`Spotify token must contain client id/secret and refresh token`};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with refresh token for spotify`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got new access token`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.response?.status)throw{error:{message:`API returned ${e.response.status}`},...o};throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i=i.slice(0,p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return console.debug(`metrics/compute/${e}/plugins > music > success`),{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw console.debug(e),{error:{message:`An error occured`}}}}async function o({login:e,q:t},{conf:r,data:n,rest:a,graphql:o,plugins:i},{s:l,pending:s,imports:d}){const p=n.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},c=d.imgb64(n.user.avatarUrl);n.plugins={};for(const c of Object.keys(d.plugins))s.push((async()=>{try{n.plugins[c]=await d.plugins[c]({login:e,q:t,imports:d,data:n,computed:p,rest:a,graphql:o},i[c])}catch(e){n.plugins[c]=e}finally{return{name:c,result:n.plugins[c]}}})());for(const c of n.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])p.repositories[e]+=c[e].totalCount;p.repositories.forks+=c.forkCount,c.licenseInfo&&(p.licenses.used[c.licenseInfo.spdxId]=(p.licenses.used[c.licenseInfo.spdxId]||0)+1)}p.diskUsage=`${d.bytes(1e3*n.user.repositories.totalDiskUsage)}`,p.licenses.favorite=Object.entries(p.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)||"",p.commits+=n.user.contributionsCollection.totalCommitContributions+n.user.contributionsCollection.restrictedContributionsCount;const u=(Date.now()-new Date(n.user.createdAt).getTime())/31536000000,m=_Mathfloor(u),g=_Mathceil(12*(u-m));p.registration=m?`${m} year${l(m)} ago`:`${g} month${l(g)} ago`,p.calendar=n.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),p.avatar=(await c)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",p.token.scopes=(await a.request("HEAD /")).headers["x-oauth-scopes"].split(", "),n.meta={version:r.package.version,author:r.package.author}}async function i({login:e,q:t},{graphql:r,rest:n,plugins:a,conf:o,die:i=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(JSON.stringify(t));const m=t.template||o.settings.templates.default,g=_Mathmax(0,+t.repositories)||o.settings.repositories||100,h=[],f=(e,t="")=>1 graphql query`),Object.assign(A,await r(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${g}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const u=_[m].default||_[m];await u({login:e,q:t},{conf:o,data:A,rest:n,graphql:r,plugins:a},{s:f,pending:h,imports:{plugins:C,url:T,imgb64:S,axios:x,puppeteer:w,format:l,bytes:d,shuffle:p,htmlescape:c}});const y=await Promise.all(h);if(o.settings.debug)for(const{name:e,result:t=null}of y)console.debug(`plugin ${e} ${t?t.error?"failed":"success":"ignored"} : ${JSON.stringify(t).replace(/^(.{888}).+/,"$1...")}`);if(i){const e=y.filter(({result:e=null})=>!!e?.error).length;if(e)throw new Error(`${e} error${f(e)} found...`)}}console.debug(`metrics/compute/${e} > render`);let O=await y.render(v,{...A,s:f,style:k,fonts:E},{async:!0});if(o.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new b({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(O);O=r}return console.debug(`metrics/compute/${e} > success`),O}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1/g,">").replace(/"/g,""").replace(/'/g,"'")}function u({data:e,conf:t,q:r}){const n=e=>"object"==typeof e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{indents:{style:`########`}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]}}[e]??{})]))})}r.r(t);var m={};r.r(m),r.d(m,{default:()=>n});var g={};r.r(g),r.d(g,{default:()=>i});var h=r(35747),f=r(85622),y=r(58509),b=r(20485),S=r(67192),x=r(2390);const v={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},k={playlist:"Suggested tracks",recent:"Recently played"},C={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;const{user:{gists:a}}=await t(` +module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_Stringprototype=String.prototype,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_Mathround=Math.round,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathceil=Math.ceil,_Mathfloor=Math.floor,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={19935:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a={templates:{},settings:{},statics:r.ab+"html",node_modules:y.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),f.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await f.promises.readFile(y.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),a.settings.templates||(a.settings.templates={default:"classic",enabled:[]}),a.settings.plugins||(a.settings.plugins={}),a.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},a.settings.debug&&t(a.settings),t(`metrics/setup > load package.json`),f.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await f.promises.readFile(y.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.9.0-beta",author:"lowlighter"}),f.existsSync(r.ab+"templates"))for(const e of await f.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/query.graphql`,`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`],[o,i,s,l]=await Promise.all(r.map(async e=>`${await f.promises.readFile(y.resolve(e))}`));a.templates[e]={query:o,image:i,style:s,fonts:l},t(`metrics/setup > load template [${e}] > success`),a.settings.debug&&Object.defineProperty(a.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o,i]=r.map(e=>`${f.readFileSync(y.resolve(e))}`);return t(`metrics/setup > reload template [${e}] > success`),{query:n,image:a,style:o,fonts:i}}})}else t(`metrics/setup > load templates from build`),a.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGlzSGlyZWFibGVcclxuICAgIHR3aXR0ZXJVc2VybmFtZVxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDEyXHJcbiAgKyAoISFiYXNlLmhlYWRlcikqODAgKyAodXNlci5pc0hpcmVhYmxlKSoxNlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMzhcclxuICArICgoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSoxMjhcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxMDhcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCghIXBsdWdpbnMudHJhZmZpYyl8fCghIXBsdWdpbnMubGluZXMpKSkqMTZcclxuICArICghIXBsdWdpbnMuZm9sbG93dXApKjY4XHJcbiAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZCkqMTI2ICsgKHBsdWdpbnMucGFnZXNwZWVkPy5kZXRhaWxlZCA/PyAwKSo2KjIwXHJcbiAgKyAoISFwbHVnaW5zLmhhYml0cykqNjhcclxuICArICghIXBsdWdpbnMubGFuZ3VhZ2VzKSo5NlxyXG4gICsgKCEhcGx1Z2lucy5tdXNpYykqNjQgKyAocGx1Z2lucy5tdXNpYz8udHJhY2tzPy5sZW5ndGggPyAxNCtNYXRoLm1heCgwLCBwbHVnaW5zLm11c2ljLnRyYWNrcy5sZW5ndGgtMSkqMzYgOiAwKVxyXG4gICsgKCEhcGx1Z2lucy5wb3N0cykqNjQgKyAocGx1Z2lucy5wb3N0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjQwXHJcbiAgKyAoISFwbHVnaW5zLmlzb2NhbGVuZGFyKSoxOTIgKyAocGx1Z2lucy5pc29jYWxlbmRhcj8uZHVyYXRpb24gPT09ICdmdWxsLXllYXInKSoxMDBcclxuICArICghIXBsdWdpbnMuZ2lzdHMpKjY4XHJcbiAgKyAoISFwbHVnaW5zLnRvcGljcykqMTYwXHJcbiAgKyAoISFwbHVnaW5zLnByb2plY3RzKSoyMiArIChwbHVnaW5zLnByb2plY3RzPy5saXN0Py5sZW5ndGggPz8gMCkqNjBcclxuICArICghIXBsdWdpbnMudHdlZXRzKSo2NCArIChwbHVnaW5zLnR3ZWV0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjkwXHJcbiAgKyBNYXRoLm1heCgwLCAoKCghIWJhc2UubWV0YWRhdGEpKyghIWJhc2UuaGVhZGVyKSsoKCEhYmFzZS5hY3Rpdml0eSl8fCghIWJhc2UuY29tbXVuaXR5KSkrKCEhYmFzZS5yZXBvc2l0b3JpZXMpKygoISFwbHVnaW5zLmhhYml0cykpKyghIXBsdWdpbnMucGFnZXNwZWVkKSsoISFwbHVnaW5zLmxhbmd1YWdlcykrKCEhcGx1Z2lucy5tdXNpYykrKCEhcGx1Z2lucy5wb3N0cykrKCEhcGx1Z2lucy5pc29jYWxlbmRhcikrKCEhcGx1Z2lucy5naXN0cykrKCEhcGx1Z2lucy50b3BpY3MpKyghIXBsdWdpbnMucHJvamVjdHMpKS0xKSkqNFxyXG4lPlwiPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UuaGVhZGVyKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDEgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiYXZhdGFyXCIgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBjb21wdXRlZC5hdmF0YXIgJT5cIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiAvPlxyXG4gICAgICAgICAgICA8c3Bhbj48JT0gdXNlci5uYW1lIHx8IHVzZXIubG9naW4gJT48L3NwYW4+XHJcbiAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgRm9sbG93ZWQgYnkgPCU9IHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHVzZXIuaXNIaXJlYWJsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhpcmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuNzUgMEExLjc1IDEuNzUgMCAwMDUgMS43NVYzSDEuNzVBMS43NSAxLjc1IDAgMDAwIDQuNzV2OC41QzAgMTQuMjE2Ljc4NCAxNSAxLjc1IDE1aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxMy4yNXYtOC41QTEuNzUgMS43NSAwIDAwMTQuMjUgM0gxMVYxLjc1QTEuNzUgMS43NSAwIDAwOS4yNSAwaC0yLjV6TTkuNSAzVjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtMi41YS4yNS4yNSAwIDAwLS4yNS4yNVYzaDN6TTUgNC41SDEuNzVhLjI1LjI1IDAgMDAtLjI1LjI1VjZhMiAyIDAgMDAyIDJoOWEyIDIgMCAwMDItMlY0Ljc1YS4yNS4yNSAwIDAwLS4yNS0uMjVINXptLTEuNSA1YTMuNDg0IDMuNDg0IDAgMDEtMi0uNjI3djQuMzc3YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWOC44NzNhMy40ODQgMy40ODQgMCAwMS0yIC42MjdoLTl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBBdmFpbGFibGUgZm9yIGhpcmUgIVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjYWxlbmRhclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+IDExXCIgd2lkdGg9XCI8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImRheVwiIHg9XCI8JT0geCoxNSAlPlwiIHk9XCIwXCIgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjExXCIgZmlsbD1cIjwlPSBjb2xvciAlPlwiIHJ4PVwiMlwiIHJ5PVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xIDIuNUEyLjUgMi41IDAgMDEzLjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMFYxLjVoLThhMSAxIDAgMDAtMSAxdjYuNzA4QTIuNDkyIDIuNDkyIDAgMDEzLjUgOWgzLjI1YS43NS43NSAwIDAxMCAxLjVIMy41YTEgMSAwIDEwMCAyaDUuNzVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVBMi41IDIuNSAwIDAxMSAxMS41di05em0xMy4yMyA3Ljc5YS43NS43NSAwIDAwMS4wNi0xLjA2bC0yLjUwNS0yLjUwNWEuNzUuNzUgMCAwMC0xLjA2IDBMOS4yMiA5LjIyOWEuNzUuNzUgMCAwMDEuMDYgMS4wNjFsMS4yMjUtMS4yMjR2Ni4xODRhLjc1Ljc1IDAgMDAxLjUgMFY5LjA2NmwxLjIyNCAxLjIyNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBDb250cmlidXRlZCB0byA8JT0gdXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8JSBpZiAoYmFzZS5hY3Rpdml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxLjc1YS43NS43NSAwIDAwLTEuNSAwdjEyLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNC41YS43NS43NSAwIDAwMC0xLjVIMS41VjEuNzV6bTE0LjI4IDIuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDEwIDcuOTQgNy41MyA1LjQ3YS43NS43NSAwIDAwLTEuMDYgMEwzLjIyIDguNzJhLjc1Ljc1IDAgMDAxLjA2IDEuMDZMNyA3LjA2bDIuNDcgMi40N2EuNzUuNzUgMCAwMDEuMDYgMGw1LjI1LTUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEFjdGl2aXR5XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMC41IDcuNzVhMi41IDIuNSAwIDExLTUgMCAyLjUgMi41IDAgMDE1IDB6bTEuNDMuNzVhNC4wMDIgNC4wMDIgMCAwMS03Ljg2IDBILjc1YS43NS43NSAwIDExMC0xLjVoMy4zMmE0LjAwMSA0LjAwMSAwIDAxNy44NiAwaDMuMzJhLjc1Ljc1IDAgMTEwIDEuNWgtMy4zMnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmNvbW1pdHMgJT4gQ29tbWl0PCU9IHMoY29tcHV0ZWQuY29tbWl0cykgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1djcuNzM2YS43NS43NSAwIDEwMS41IDBWMS43NUExLjc1IDEuNzUgMCAwMDExLjI1IDBoLTguNUExLjc1IDEuNzUgMCAwMDEgMS43NXYxMS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMy4xN2EuNzUuNzUgMCAwMDAtMS41SDIuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek00Ljc1IDRhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41ek00IDcuNzVBLjc1Ljc1IDAgMDE0Ljc1IDdoMmEuNzUuNzUgMCAwMTAgMS41aC0yQS43NS43NSAwIDAxNCA3Ljc1em0xMS43NzQgMy41MzdhLjc1Ljc1IDAgMDAtMS4wNDgtMS4wNzRMMTAuNyAxNC4xNDUgOS4yODEgMTIuNzJhLjc1Ljc1IDAgMDAtMS4wNjIgMS4wNThsMS45NDMgMS45NWEuNzUuNzUgMCAwMDEuMDU1LjAwOGw0LjU1Ny00LjQ1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zKSAlPiByZXZpZXdlZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMTc3IDMuMDczTDkuNTczLjY3N0EuMjUuMjUgMCAwMTEwIC44NTR2NC43OTJhLjI1LjI1IDAgMDEtLjQyNy4xNzdMNy4xNzcgMy40MjdhLjI1LjI1IDAgMDEwLS4zNTR6TTMuNzUgMi41YS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41em0tMi4yNS43NWEyLjI1IDIuMjUgMCAxMTMgMi4xMjJ2NS4yNTZhMi4yNTEgMi4yNTEgMCAxMS0xLjUgMFY1LjM3MkEyLjI1IDIuMjUgMCAwMTEuNSAzLjI1ek0xMSAyLjVoLTFWNGgxYTEgMSAwIDAxMSAxdjUuNjI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY1QTIuNSAyLjUgMCAwMDExIDIuNXptMSAxMC4yNWEuNzUuNzUgMCAxMTEuNSAwIC43NS43NSAwIDAxLTEuNSAwek0zLjc1IDEyYS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucyAlPiBJc3N1ZTwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg0LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgyLjc1ek0xIDIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWgxMC41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTJIOS4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTQgMTMuNTQzVjEySDIuNzVBMS43NSAxLjc1IDAgMDExIDEwLjI1di03LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCAlPiBpc3N1ZSBjb21tZW50PCU9IHModXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSBpZiAoYmFzZS5jb21tdW5pdHkpIHsgJT5cclxuICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjMyNiAxLjk3M2ExLjIgMS4yIDAgMDExLjQ5LS44MzJjLjM4Ny4xMTIuOTc3LjMwNyAxLjU3NS42MDIuNTg2LjI5MSAxLjI0My43MSAxLjcgMS4yOTYuMDIyLjAyNy4wNDIuMDU2LjA2MS4wODRBMTMuMjIgMTMuMjIgMCAwMTggM2MuNjcgMCAxLjI4OS4wMzcgMS44NjEuMTA4bC4wNTEtLjA3Yy40NTctLjU4NiAxLjExNC0xLjAwNCAxLjctMS4yOTVhOS42NTQgOS42NTQgMCAwMTEuNTc2LS42MDIgMS4yIDEuMiAwIDAxMS40OS44MzJjLjE0LjQ5My4zNTYgMS4zNDcuNDc5IDIuMjkuMDc5LjYwNC4xMjMgMS4yOC4wNyAxLjkzNi41NDEuOTc3Ljc3MyAyLjExLjc3MyAzLjMwMUMxNiAxMyAxNC41IDE1IDggMTVzLTgtMi04LTUuNWMwLTEuMDM0LjIzOC0yLjEyOC43OTUtMy4xMTctLjA4LS43MTItLjAzNC0xLjQ2LjA1Mi0yLjEyLjEyMi0uOTQzLjM0LTEuNzk3LjQ3OS0yLjI5ek04IDEzLjA2NWM2IDAgNi41LTIgNi00LjI3QzEzLjM2MyA1LjkwNSAxMS4yNSA1IDggNXMtNS4zNjMuOTA0LTYgMy43OTZjLS41IDIuMjcgMCA0LjI3IDYgNC4yN3pcIj48L3BhdGg+PHBhdGggZD1cIk00IDhhMSAxIDAgMDEyIDB2MWExIDEgMCAwMS0yIDBWOHptMi4wNzggMi40OTJjLS4wODMtLjI2NC4xNDYtLjQ5Mi40MjItLjQ5MmgzYy4yNzYgMCAuNTA1LjIyOC40MjIuNDkyQzkuNjcgMTEuMzA0IDguODM0IDEyIDggMTJjLS44MzQgMC0xLjY2OS0uNjk2LTEuOTIyLTEuNTA4ek0xMCA4YTEgMSAwIDExMiAwdjFhMSAxIDAgMTEtMiAwVjh6XCI+PC9wYXRoPjwvc3ZnPiAgICAgICAgICAgICAgQ29tbXVuaXR5IHN0YXRzXHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgMTQuMjVjMCAuMTM4LjExMi4yNS4yNS4yNUg0di0xLjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS4yNWgyLjI1YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTguNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNXpNMS43NSAxNkExLjc1IDEuNzUgMCAwMTAgMTQuMjVWMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDguNUMxMS4yMTYgMCAxMiAuNzg0IDEyIDEuNzV2MTIuNWMwIC4wODUtLjAwNi4xNjgtLjAxOC4yNWgyLjI2OGEuMjUuMjUgMCAwMC4yNS0uMjVWOC4yODVhLjI1LjI1IDAgMDAtLjExMS0uMjA4bC0xLjA1NS0uNzAzYS43NS43NSAwIDExLjgzMi0xLjI0OGwxLjA1NS43MDNjLjQ4Ny4zMjUuNzc5Ljg3MS43NzkgMS40NTZ2NS45NjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNmgtMy41YS43NS43NSAwIDAxLS4xOTctLjAyNmMtLjA5OS4wMTctLjIuMDI2LS4zMDMuMDI2aC0zYS43NS43NSAwIDAxLS43NS0uNzVWMTRoLTF2MS4yNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTN6TTMgMy43NUEuNzUuNzUgMCAwMTMuNzUgM2guNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgMy43NXpNMy43NSA2YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTMgOS43NUEuNzUuNzUgMCAwMTMuNzUgOWguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgOS43NXpNNy43NSA5YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTcgNi43NUEuNzUuNzUgMCAwMTcuNzUgNmguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTcgNi43NXpNNy43NSAzYS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIE1lbWJlciBvZiA8JT0gdXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQgJT4gb3JnYW5pemF0aW9uPCU9IHModXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBGb2xsb3dpbmcgPCU9IHVzZXIuZm9sbG93aW5nLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3BvbnNvcmluZyA8JT0gdXNlci5zcG9uc29yc2hpcHNBc1Nwb25zb3IudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFN0YXJyZWQgPCU9IHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjY3OSA3LjkzMmMuNDEyLS42MjEgMS4yNDItMS43NSAyLjM2Ni0yLjcxN0M1LjE3NSA0LjI0MiA2LjUyNyAzLjUgOCAzLjVjMS40NzMgMCAyLjgyNC43NDIgMy45NTUgMS43MTUgMS4xMjQuOTY3IDEuOTU0IDIuMDk2IDIuMzY2IDIuNzE3YS4xMTkuMTE5IDAgMDEwIC4xMzZjLS40MTIuNjIxLTEuMjQyIDEuNzUtMi4zNjYgMi43MTdDMTAuODI1IDExLjc1OCA5LjQ3MyAxMi41IDggMTIuNWMtMS40NzMgMC0yLjgyNC0uNzQyLTMuOTU1LTEuNzE1QzIuOTIgOS44MTggMi4wOSA4LjY5IDEuNjc5IDguMDY4YS4xMTkuMTE5IDAgMDEwLS4xMzZ6TTggMmMtMS45ODEgMC0zLjY3Ljk5Mi00LjkzMyAyLjA3OEMxLjc5NyA1LjE2OS44OCA2LjQyMy40MyA3LjFhMS42MTkgMS42MTkgMCAwMDAgMS43OThjLjQ1LjY3OCAxLjM2NyAxLjkzMiAyLjYzNyAzLjAyNEM0LjMyOSAxMy4wMDggNi4wMTkgMTQgOCAxNGMxLjk4MSAwIDMuNjctLjk5MiA0LjkzMy0yLjA3OCAxLjI3LTEuMDkxIDIuMTg3LTIuMzQ1IDIuNjM3LTMuMDIzYTEuNjE5IDEuNjE5IDAgMDAwLTEuNzk4Yy0uNDUtLjY3OC0xLjM2Ny0xLjkzMi0yLjYzNy0zLjAyM0MxMS42NzEgMi45OTIgOS45ODEgMiA4IDJ6bTAgOGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgV2F0Y2hpbmcgPCU9IHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UucmVwb3NpdG9yaWVzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMiAyLjVBMi41IDIuNSAwIDAxNC41IDBoOC43NWEuNzUuNzUgMCAwMS43NS43NXYxMi41YS43NS43NSAwIDAxLS43NS43NWgtMi41YS43NS43NSAwIDExMC0xLjVoMS43NXYtMmgtOGExIDEgMCAwMC0uNzE0IDEuNy43NS43NSAwIDAxLTEuMDcyIDEuMDVBMi40OTUgMi40OTUgMCAwMTIgMTEuNXYtOXptMTAuNS0xVjloLThjLS4zNTYgMC0uNjk0LjA3NC0xIC4yMDhWMi41YTEgMSAwIDAxMS0xaDh6TTUgMTIuMjV2My4yNWEuMjUuMjUgMCAwMC40LjJsMS40NS0xLjA4N2EuMjUuMjUgMCAwMS4zIDBMOC42IDE1LjdhLjI1LjI1IDAgMDAuNC0uMnYtMy4yNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMDAtLjI1LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gUmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljc1Ljc1YS43NS43NSAwIDAwLTEuNSAwVjJoLS45ODRjLS4zMDUgMC0uNjA0LjA4LS44NjkuMjNsLTEuMjg4LjczN0EuMjUuMjUgMCAwMTMuOTg0IDNIMS43NWEuNzUuNzUgMCAwMDAgMS41aC40MjhMLjA2NiA5LjE5MmEuNzUuNzUgMCAwMC4xNTQuODM4bC41My0uNTMtLjUzLjUzdi4wMDFsLjAwMi4wMDIuMDAyLjAwMi4wMDYuMDA2LjAxNi4wMTUuMDQ1LjA0YTMuNTE0IDMuNTE0IDAgMDAuNjg2LjQ1QTQuNDkyIDQuNDkyIDAgMDAzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTE1IDMuNTE1IDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMTYtLjAxNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMkw1LjI1IDkuNWwuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMy44MjIgNC41aC4xNjJjLjMwNSAwIC42MDQtLjA4Ljg2OS0uMjNsMS4yODktLjczN2EuMjUuMjUgMCAwMS4xMjQtLjAzM2guOTg0VjEzaC0yLjVhLjc1Ljc1IDAgMDAwIDEuNWg2LjVhLjc1Ljc1IDAgMDAwLTEuNWgtMi41VjMuNWguOTg0YS4yNS4yNSAwIDAxLjEyNC4wMzNsMS4yOS43MzZjLjI2NC4xNTIuNTYzLjIzMS44NjguMjMxaC4xNjJsLTIuMTEyIDQuNjkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTcgMy41MTcgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDEzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTEyIDMuNTEyIDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMS0uMDEuMDA2LS4wMDUuMDA2LS4wMDYuMDAyLS4wMDIuMDAxLS4wMDItLjUyOS0uNTMxLjUzLjUzYS43NS43NSAwIDAwLjE1NC0uODM4TDEzLjgyMyA0LjVoLjQyN2EuNzUuNzUgMCAwMDAtMS41aC0yLjIzNGEuMjUuMjUgMCAwMS0uMTI0LS4wMzNsLTEuMjktLjczNkExLjc1IDEuNzUgMCAwMDkuNzM1IDJIOC43NVYuNzV6TTEuNjk1IDkuMjI3Yy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDMgNi4zMjdsLTEuMzA1IDIuOXptMTAgMGMuMjg1LjEzNS43MTguMjczIDEuMzA1LjI3M3MxLjAyLS4xMzggMS4zMDUtLjI3M0wxMyA2LjMyN2wtMS4zMDUgMi45elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgUHJlZmVyIDwlPSBjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZSAlPiBsaWNlbnNlXHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBObyBsaWNlbnNlIHByZWZlcmVuY2VcclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgNy43NzVWMi43NWEuMjUuMjUgMCAwMS4yNS0uMjVoNS4wMjVhLjI1LjI1IDAgMDEuMTc3LjA3M2w2LjI1IDYuMjVhLjI1LjI1IDAgMDEwIC4zNTRsLTUuMDI1IDUuMDI1YS4yNS4yNSAwIDAxLS4zNTQgMGwtNi4yNS02LjI1YS4yNS4yNSAwIDAxLS4wNzMtLjE3N3ptLTEuNSAwVjIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWg1LjAyNWMuNDY0IDAgLjkxLjE4NCAxLjIzOC41MTNsNi4yNSA2LjI1YTEuNzUgMS43NSAwIDAxMCAyLjQ3NGwtNS4wMjYgNS4wMjZhMS43NSAxLjc1IDAgMDEtMi40NzQgMGwtNi4yNS02LjI1QTEuNzUgMS43NSAwIDAxMSA3Ljc3NXpNNiA1YTEgMSAwIDEwMCAyIDEgMSAwIDAwMC0yelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMucmVsZWFzZXMgJT4gUmVsZWFzZTwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljg3OC4zOTJhMS43NSAxLjc1IDAgMDAtMS43NTYgMGwtNS4yNSAzLjA0NUExLjc1IDEuNzUgMCAwMDEgNC45NTF2Ni4wOThjMCAuNjI0LjMzMiAxLjIuODcyIDEuNTE0bDUuMjUgMy4wNDVhMS43NSAxLjc1IDAgMDAxLjc1NiAwbDUuMjUtMy4wNDVjLjU0LS4zMTMuODcyLS44OS44NzItMS41MTRWNC45NTFjMC0uNjI0LS4zMzItMS4yLS44NzItMS41MTRMOC44NzguMzkyek03Ljg3NSAxLjY5YS4yNS4yNSAwIDAxLjI1IDBsNC42MyAyLjY4NUw4IDcuMTMzIDMuMjQ1IDQuMzc1bDQuNjMtMi42ODV6TTIuNSA1LjY3N3Y1LjM3MmMwIC4wOS4wNDcuMTcxLjEyNS4yMTZsNC42MjUgMi42ODNWOC40MzJMMi41IDUuNjc3em02LjI1IDguMjcxbDQuNjI1LTIuNjgzYS4yNS4yNSAwIDAwLjEyNS0uMjE2VjUuNjc3TDguNzUgOC40MzJ2NS41MTZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHVzZXIucGFja2FnZXMudG90YWxDb3VudCAlPiBQYWNrYWdlPCU9IHModXNlci5wYWNrYWdlcy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMy41YzAtLjEzMy4wNTgtLjMxOC4yODItLjU1LjIyNy0uMjM3LjU5Mi0uNDg0IDEuMS0uNzA4QzQuODk5IDEuNzk1IDYuMzU0IDEuNSA4IDEuNWMxLjY0NyAwIDMuMTAyLjI5NSA0LjExNy43NDIuNTEuMjI0Ljg3NC40NyAxLjEwMS43MDcuMjI0LjIzMy4yODIuNDE4LjI4Mi41NTEgMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgNS4yMDUgOS42NDYgNS41IDggNS41Yy0xLjY0NyAwLTMuMTAyLS4yOTUtNC4xMTctLjc0Mi0uNTEtLjIyNC0uODc0LS40Ny0xLjEwMS0uNzA3LS4yMjQtLjIzMy0uMjgyLS40MTgtLjI4Mi0uNTUxek0xIDMuNWMwLS42MjYuMjkyLTEuMTY1LjctMS41OS40MDYtLjQyMi45NTYtLjc2NyAxLjU3OS0xLjA0MUM0LjUyNS4zMiA2LjE5NSAwIDggMGMxLjgwNSAwIDMuNDc1LjMyIDQuNzIyLjg2OS42MjIuMjc0IDEuMTcyLjYyIDEuNTc4IDEuMDQuNDA4LjQyNi43Ljk2NS43IDEuNTkxdjljMCAuNjI2LS4yOTIgMS4xNjUtLjcgMS41OS0uNDA2LjQyMi0uOTU2Ljc2Ny0xLjU3OSAxLjA0MUMxMS40NzYgMTUuNjggOS44MDYgMTYgOCAxNmMtMS44MDUgMC0zLjQ3NS0uMzItNC43MjEtLjg2OS0uNjIzLS4yNzQtMS4xNzMtLjYyLTEuNTc5LTEuMDQtLjQwOC0uNDI2LS43LS45NjUtLjctMS41OTF2LTl6TTIuNSA4VjUuNzI0Yy4yNDEuMTUuNTAzLjI4Ni43NzkuNDA3QzQuNTI1IDYuNjggNi4xOTUgNyA4IDdjMS44MDUgMCAzLjQ3NS0uMzIgNC43MjItLjg2OS4yNzUtLjEyMS41MzctLjI1Ny43NzgtLjQwN1Y4YzAgLjEzMy0uMDU4LjMxOC0uMjgyLjU1LS4yMjcuMjM3LS41OTIuNDg0LTEuMS43MDhDMTEuMTAxIDkuNzA1IDkuNjQ2IDEwIDggMTBjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDdDMi41NTggOC4zMTggMi41IDguMTMzIDIuNSA4em0wIDIuMjI1VjEyLjVjMCAuMTMzLjA1OC4zMTguMjgyLjU1LjIyNy4yMzcuNTkyLjQ4NCAxLjEuNzA4IDEuMDE2LjQ0NyAyLjQ3MS43NDIgNC4xMTguNzQyIDEuNjQ3IDAgMy4xMDItLjI5NSA0LjExNy0uNzQyLjUxLS4yMjQuODc0LS40NyAxLjEwMS0uNzA3LjIyNC0uMjMzLjI4Mi0uNDE4LjI4Mi0uNTUxdi0yLjI3NWMtLjI0MS4xNS0uNTAzLjI4NS0uNzc4LjQwNi0xLjI0Ny41NDktMi45MTcuODY5LTQuNzIyLjg2OS0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5YTYuMjM2IDYuMjM2IDAgMDEtLjc3OS0uNDA2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5kaXNrVXNhZ2UgJT4gdXNlZFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy5saW5lcy5lcnJvciA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjQuNjY0YS4yNS4yNSAwIDAwLS4wNzMtLjE3N2wtMi45MTQtMi45MTRhLjI1LjI1IDAgMDAtLjE3Ny0uMDczSDIuNzV6TTEgMS43NUMxIC43ODQgMS43ODQgMCAyLjc1IDBoNy41ODZjLjQ2NCAwIC45MDkuMTg0IDEuMjM3LjUxM2wyLjkxNCAyLjkxNGMuMzI5LjMyOC41MTMuNzczLjUxMyAxLjIzN3Y5LjU4NkExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjEuNzV6bTcgMS41YS43NS43NSAwIDAxLjc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41djEuNWEuNzUuNzUgMCAwMS0xLjUgMFY3aC0xLjVhLjc1Ljc1IDAgMDEwLTEuNWgxLjVWNEEuNzUuNzUgMCAwMTggMy4yNXptLTMgOGEuNzUuNzUgMCAwMS43NS0uNzVoNC41YS43NS43NSAwIDAxMCAxLjVoLTQuNWEuNzUuNzUgMCAwMS0uNzUtLjc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5saW5lcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5hZGRlZCAlPiBhZGRlZCwgPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiByZW1vdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCAlPiBTcG9uc29yPCU9IHModXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzICU+IFN0YXJnYXplcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3JrcyAlPiBGb3JrPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMgJT4gV2F0Y2hlcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50cmFmZmljKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMS43NUEuNzUuNzUgMCAwMS43NSAxaDQuMjUzYzEuMjI3IDAgMi4zMTcuNTkgMyAxLjUwMUEzLjc0NCAzLjc0NCAwIDAxMTEuMDA2IDFoNC4yNDVhLjc1Ljc1IDAgMDEuNzUuNzV2MTAuNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNTA3YTIuMjUgMi4yNSAwIDAwLTEuNTkxLjY1OWwtLjYyMi42MjFhLjc1Ljc1IDAgMDEtMS4wNiAwbC0uNjIyLS42MjFBMi4yNSAyLjI1IDAgMDA1LjI1OCAxM0guNzVhLjc1Ljc1IDAgMDEtLjc1LS43NVYxLjc1em04Ljc1NSAzYTIuMjUgMi4yNSAwIDAxMi4yNS0yLjI1SDE0LjV2OWgtMy43NTdjLS43MSAwLTEuNC4yMDEtMS45OTIuNTcybC4wMDQtNy4zMjJ6bS0xLjUwNCA3LjMyNGwuMDA0LTUuMDczLS4wMDItMi4yNTNBMi4yNSAyLjI1IDAgMDA1LjAwMyAyLjVIMS41djloMy43NTdhMy43NSAzLjc1IDAgMDExLjk5NC41NzR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50ICU+IHZpZXc8JT0gcyhwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQpICU+IGluIGxhc3QgdHdvIHdlZWtzXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPklzc3VlczwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJpc3N1ZXMtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2Q3M2E0OVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4YTc0NVwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaG9yaXpvbnRhbCBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiI2Q3M2E0OVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAwMTEwLjY1LTUuMDAzLjc1Ljc1IDAgMDAuOTU5LTEuMTUzIDggOCAwIDEwMi41OTIgOC4zMy43NS43NSAwIDEwLTEuNDQ0LS40MDdBNi41IDYuNSAwIDAxMS41IDh6TTggMTJhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTAtOGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMTEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptNC43OCA0LjI4bDMtM2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIuNDcgMi40Ny0uOTctLjk3YS43NDkuNzQ5IDAgMTAtMS4wNiAxLjA2bDEuNSAxLjVhLjc1Ljc1IDAgMDAxLjA2IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkICU+IENsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPlB1bGwgcmVxdWVzdHM8L2gzPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cC5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHItYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAucHIuY291bnQgPyAwIDogMjIwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2ZjQyYzFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9ICgxLXBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkL3BsdWdpbnMuZm9sbG93dXAucHIuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjNmY0MmMxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1NFYzLjI1di4wMDVhLjc1Ljc1IDAgMTEwLS4wMDV2LjAwNHptLjQ1IDEuOWEyLjI1IDIuMjUgMCAxMC0xLjk1LjIxOHY1LjI1NmEyLjI1IDIuMjUgMCAxMDEuNSAwVjcuMTIzQTUuNzM1IDUuNzM1IDAgMDA5LjI1IDloMS4zNzhhMi4yNTEgMi4yNTEgMCAxMDAtMS41SDkuMjVhNC4yNSA0LjI1IDAgMDEtMy44LTIuMzQ2ek0xMi43NSA5YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41em0tOC41IDQuNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZCAlPiBNZXJnZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjMjhhNzQ1XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5vcGVuICU+IE9wZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgIDxoMz5Nb3N0IHVzZWQgbGFuZ3VhZ2VzPC9oMz5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICA8bWFzayBpZD1cImxhbmd1YWdlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcy5sZW5ndGggPyAwIDogNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvciwgeH0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNsYW5ndWFnZXMtYmFyKVwiIHg9XCI8JT0geCo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHZhbHVlKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIvPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXIgaG9yaXpvbnRhbC13cmFwIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZSwgY29sb3J9IG9mIHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBuby13cmFwIGxhbmd1YWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiPCU9IGNvbG9yICU+XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMEExLjc1IDEuNzUgMCAwMDAgMS43NXYxMi41QzAgMTUuMjE2Ljc4NCAxNiAxLjc1IDE2aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxNC4yNVYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMEgxLjc1ek0xLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMTIuNWEuMjUuMjUgMCAwMS4yNS4yNXYxMi41YS4yNS4yNSAwIDAxLS4yNS4yNUgxLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNMTEuNzUgM2EuNzUuNzUgMCAwMC0uNzUuNzV2Ny41YS43NS43NSAwIDAwMS41IDB2LTcuNWEuNzUuNzUgMCAwMC0uNzUtLjc1em0tOC4yNS43NWEuNzUuNzUgMCAwMTEuNSAwdjUuNWEuNzUuNzUgMCAwMS0xLjUgMHYtNS41ek04IDNhLjc1Ljc1IDAgMDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjVBLjc1Ljc1IDAgMDA4IDN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy50b3RhbENvdW50ICU+IFByb2plY3Q8JT0gcyhwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB1cGRhdGVkLCBwcm9ncmVzc30gb2YgcGx1Z2lucy5wcm9qZWN0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0wIDMuNzVDMCAyLjc4NC43ODQgMiAxLjc1IDJoMTIuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djguNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE0SDEuNzVBMS43NSAxLjc1IDAgMDEwIDEyLjI1di04LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMy41IDYuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDdhLjc1Ljc1IDAgMDEwIDEuNWgtN2EuNzUuNzUgMCAwMS0uNzUtLjc1em0uNzUgMi4yNWEuNzUuNzUgMCAwMDAgMS41aDRhLjc1Ljc1IDAgMDAwLTEuNWgtNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBuYW1lICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bS41IDQuNzVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwLjQ3MS42OTZsMi41IDFhLjc1Ljc1IDAgMDAuNTU3LTEuMzkyTDguNSA3Ljc0MlY0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlZCA8JT0gdXBkYXRlZCAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBbcHJvZ3Jlc3MuZG9uZSA/IGAke3Byb2dyZXNzLmRvbmV9IGRvbmVgIDogXCJcIiwgcHJvZ3Jlc3MuZG9pbmcgPyBgJHtwcm9ncmVzcy5kb2luZ30gZG9pbmdgIDogXCJcIiwgcHJvZ3Jlc3MudG9kbyA/IGAke3Byb2dyZXNzLnRvZG99IHRvZG9gIDogXCJcIl0uZmlsdGVyKHN0ciA9PiBzdHIpLmpvaW4oXCIgwrcgXCIpICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInByb2plY3QtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLmRvbmUvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4QTc0NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9pbmcvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZGNDJDMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAoKHByb2dyZXNzLmRvbmUrcHJvZ3Jlc3MuZG9pbmcpL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy50b2RvL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5naXN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djEyLjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNkgxLjc1QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1em05LjIyIDMuNzJhLjc1Ljc1IDAgMDAwIDEuMDZMMTAuNjkgOCA5LjIyIDkuNDdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsMi0yYS43NS43NSAwIDAwMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMDAtMS4wNiAwek02Ljc4IDYuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0yIDJhLjc1Ljc1IDAgMDAwIDEuMDZsMiAyYS43NS43NSAwIDEwMS4wNi0xLjA2TDUuMzEgOGwxLjQ3LTEuNDd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy50b3RhbENvdW50ICU+IEdpc3Q8JT0gcyhwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5naXN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMocGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjVhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMCAyLjEyMmEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4QTIuMjUgMi4yNSAwIDAwNS43NSA4LjVoMS41djIuMTI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY4LjVoMS41YTIuMjUgMi4yNSAwIDAwMi4yNS0yLjI1di0uODc4YTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhhLjc1Ljc1IDAgMDEtLjc1Ljc1aC00LjVBLjc1Ljc1IDAgMDE1IDYuMjV2LS44Nzh6bTMuNzUgNy4zNzhhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMy04Ljc1YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuZm9ya3MgJT4gRm9yazwlPSBzKHBsdWdpbnMuZ2lzdHMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkKSB7ICU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE0LjA2NCAwYTguNzUgOC43NSAwIDAwLTYuMTg3IDIuNTYzbC0uNDU5LjQ1OGMtLjMxNC4zMTQtLjYxNi42NDEtLjkwNC45NzlIMy4zMWExLjc1IDEuNzUgMCAwMC0xLjQ5LjgzM0wuMTEgNy42MDdhLjc1Ljc1IDAgMDAuNDE4IDEuMTFsMy4xMDIuOTU0Yy4wMzcuMDUxLjA3OS4xLjEyNC4xNDVsMi40MjkgMi40MjhjLjA0Ni4wNDYuMDk0LjA4OC4xNDUuMTI1bC45NTQgMy4xMDJhLjc1Ljc1IDAgMDAxLjExLjQxOGwyLjc3NC0xLjcwN2ExLjc1IDEuNzUgMCAwMC44MzMtMS40OVY5LjQ4NWMuMzM4LS4yODguNjY1LS41OS45NzktLjkwNGwuNDU4LS40NTlBOC43NSA4Ljc1IDAgMDAxNiAxLjkzNlYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMGgtLjE4NnpNMTAuNSAxMC42MjVjLS4wODguMDYtLjE3Ny4xMTgtLjI2Ni4xNzVsLTIuMzUgMS41MjEuNTQ4IDEuNzgzIDEuOTQ5LTEuMmEuMjUuMjUgMCAwMC4xMTktLjIxM3YtMi4wNjZ6TTMuNjc4IDguMTE2TDUuMiA1Ljc2NmMuMDU4LS4wOS4xMTctLjE3OC4xNzYtLjI2NkgzLjMwOWEuMjUuMjUgMCAwMC0uMjEzLjExOWwtMS4yIDEuOTUgMS43ODIuNTQ3em01LjI2LTQuNDkzQTcuMjUgNy4yNSAwIDAxMTQuMDYzIDEuNWguMTg2YS4yNS4yNSAwIDAxLjI1LjI1di4xODZhNy4yNSA3LjI1IDAgMDEtMi4xMjMgNS4xMjdsLS40NTkuNDU4YTE1LjIxIDE1LjIxIDAgMDEtMi40OTkgMi4wMmwtMi4zMTcgMS41LTIuMTQzLTIuMTQzIDEuNS0yLjMxN2ExNS4yNSAxNS4yNSAwIDAxMi4wMi0yLjVsLjQ1OC0uNDU4aC4wMDJ6TTEyIDVhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tOC40NCA5LjU2YTEuNSAxLjUgMCAxMC0yLjEyLTIuMTJjLS43MzQuNzMtMS4wNDcgMi4zMzItMS4xNSAzLjAwM2EuMjMuMjMgMCAwMC4yNjUuMjY1Yy42NzEtLjEwMyAyLjI3My0uNDE2IDMuMDA1LTEuMTQ4elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBQYWdlU3BlZWQgSW5zaWdodHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZSBjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDEyMCAxMjBcIiB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiBjbGFzcz1cImdhdWdlIDwlPSAhTnVtYmVyLmlzTmFOKHNjb3JlKSA/IChzY29yZSA+PSAwLjkgPyAnaGlnaCcgOiBzY29yZSA+PSAwLjUgPyAnYXZlcmFnZScgOiAnbG93JykgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWJhc2VcIiByPVwiNTNcIiBjeD1cIjYwXCIgY3k9XCI2MFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJnYXVnZS1hcmNcIiB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDYwIDYwKVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCIgc3Ryb2tlLWRhc2hhcnJheT1cIjwlPSBzY29yZSAqIDMyOSAlPiAzMjlcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHQgeD1cIjYwXCIgeT1cIjYwXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCIgPjwlPSBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgJT48L3RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+LTwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+PCU9IHRpdGxlICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmRldGFpbGVkKSB7ICU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdHMgcm93XCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01Ljc1Ljc1QS43NS43NSAwIDAxNi41IDBoM2EuNzUuNzUgMCAwMTAgMS41aC0uNzV2MWwtLjAwMS4wNDFhNi43MTggNi43MTggMCAwMTMuNDY0IDEuNDM1bC4wMDctLjAwNi43NS0uNzVhLjc1Ljc1IDAgMTExLjA2IDEuMDZsLS43NS43NS0uMDA2LjAwN2E2Ljc1IDYuNzUgMCAxMS0xMC41NDggMEwyLjcyIDUuMDNsLS43NS0uNzVhLjc1Ljc1IDAgMDExLjA2LTEuMDZsLjc1Ljc1LjAwNy4wMDZBNi43MTggNi43MTggMCAwMTcuMjUgMi41NDFhLjc1Ni43NTYgMCAwMTAtLjA0MXYtMUg2LjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNOCAxNC41QTUuMjUgNS4yNSAwIDEwOCA0YTUuMjUgNS4yNSAwIDAwMCAxMC41em0uMzg5LTYuN2wxLjMzLTEuMzNhLjc1Ljc1IDAgMTExLjA2MSAxLjA2TDkuNDUgOC44NjFBMS41MDIgMS41MDIgMCAwMTggMTAuNzVhMS41IDEuNSAwIDExLjM4OS0yLjk1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBUaW1lIHRvIGludGVyYWN0aXZlXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwNi4wMTYgNC4wMzUuNzUuNzUgMCAwMTEuMzg4LS41NyA4IDggMCAxMS00LjM3LTQuMzcuNzUuNzUgMCAwMS0uNTY5IDEuMzg5QTYuNDc5IDYuNDc5IDAgMDA4IDEuNXptNi4yOC4yMmEuNzUuNzUgMCAwMTAgMS4wNmwtNC4wNjMgNC4wNjRhMi41IDIuNSAwIDExLTEuMDYtMS4wNkwxMy4yMiAxLjcyYS43NS43NSAwIDAxMS4wNiAwek03IDhhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBTcGVlZCBJbmRleFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjQzIDMuMTQzTC40MjcgMS45MjdBLjI1LjI1IDAgMDAwIDIuMTA0VjUuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgzLjY0NmEuMjUuMjUgMCAwMC4xNzctLjQyN0wyLjcxNSA0LjIxNWE2LjUgNi41IDAgMTEtMS4xOCA0LjQ1OC43NS43NSAwIDEwLTEuNDkzLjE1NCA4LjAwMSA4LjAwMSAwIDEwMS42LTUuNjg0ek03Ljc1IDRhLjc1Ljc1IDAgMDEuNzUuNzV2Mi45OTJsMi4wMjguODEyYS43NS43NSAwIDAxLS41NTcgMS4zOTJsLTIuNS0xQS43NS43NSAwIDAxNyA4LjI1di0zLjVBLjc1Ljc1IDAgMDE3Ljc1IDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRvdGFsIEJsb2NraW5nIFRpbWVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4xMzQgMS41MzVDOS43MjIgMi41NjIgOC4xNiA0LjA1NyA2Ljg4OSA1LjMxMiA1LjggNi4zODcgNS4wNDEgNy40MDEgNC41NzUgOC4yOTRhMy43NDUgMy43NDUgMCAwMC0zLjIyNyAxLjA1NGMtLjQzLjQzMS0uNjkgMS4wNjYtLjg2IDEuNjU3YTExLjk4MiAxMS45ODIgMCAwMC0uMzU4IDEuOTE0QTIxLjI2MyAyMS4yNjMgMCAwMDAgMTUuMjAzdi4wNTRsLjc1LS4wMDctLjAwNy43NWguMDU0YTE0LjQwNCAxNC40MDQgMCAwMC42NTQtLjAxMiAyMS4yNDMgMjEuMjQzIDAgMDAxLjYzLS4xMThjLjYyLS4wNyAxLjMtLjE4IDEuOTE0LS4zNTcuNTkyLS4xNyAxLjIyNi0uNDMgMS42NTctLjg2MWEzLjc0NSAzLjc0NSAwIDAwMS4wNTUtMy4yMTdjLjkwOC0uNDYxIDEuOTQyLTEuMjE2IDMuMDQtMi4zIDEuMjc5LTEuMjYyIDIuNzY0LTIuODI1IDMuNzc1LTQuMjQ5LjUwMS0uNzA2LjkyMy0xLjQyOCAxLjEyNS0yLjA5Ni4yLS42NTkuMjM1LTEuNDY5LS4zNjgtMi4wNy0uNjA2LS42MDctMS40Mi0uNTUtMi4wNjktLjM0LS42Ni4yMTMtMS4zNzYuNjQ2LTIuMDc2IDEuMTU1em0tMy45NSA4LjQ4YTMuNzYgMy43NiAwIDAwLTEuMTktMS4xOTIgOS43NTggOS43NTggMCAwMTEuMTYxLTEuNjA3bDEuNjU4IDEuNjU4YTkuODUzIDkuODUzIDAgMDEtMS42MyAxLjE0MnpNLjc0MiAxNmwuMDA3LS43NS0uNzUuMDA4QS43NS43NSAwIDAwLjc0MyAxNnpNMTIuMDE2IDIuNzQ5Yy0xLjIyNC44OS0yLjYwNSAyLjE4OS0zLjgyMiAzLjM4NGwxLjcxOCAxLjcxOGMxLjIxLTEuMjA1IDIuNTEtMi41OTcgMy4zODctMy44MzMuNDctLjY2Mi43OC0xLjIyNy45MTItMS42NjIuMTM0LS40NDQuMDMyLS41NTEuMDA5LS41NzVoLS4wMDFWMS43OGMtLjAxNC0uMDE0LS4xMTItLjExMy0uNTQ4LjAyNy0uNDMyLjE0LS45OTUuNDYyLTEuNjU1Ljk0MnpNMS42MiAxMy4wODlhMTkuNTYgMTkuNTYgMCAwMC0uMTA0IDEuMzk1IDE5LjU1IDE5LjU1IDAgMDAxLjM5Ni0uMTA0IDEwLjUyOCAxMC41MjggMCAwMDEuNjY4LS4zMDljLjUyNi0uMTUxLjg1Ni0uMzI1IDEuMDExLS40OGEyLjI1IDIuMjUgMCAwMC0zLjE4Mi0zLjE4MmMtLjE1NS4xNTUtLjMyOS40ODUtLjQ4IDEuMDFhMTAuNTE1IDEwLjUxNSAwIDAwLS4zMDkgMS42N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgRmlyc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMC41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjk0YS43Ni43NiAwIDAxLjAzLS4wM2w2LjA3Ny02LjA3OGExLjc1IDEuNzUgMCAwMTIuNDEyLS4wNkwxNC41IDEwLjMxVjIuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1em0xMi41IDExSDQuODFsNS4wNDgtNS4wNDdhLjI1LjI1IDAgMDEuMzQ0LS4wMDlsNC4yOTggMy44ODl2LjkxN2EuMjUuMjUgMCAwMS0uMjUuMjV6bTEuNzUtLjI1VjIuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAxSDEuNzVBMS43NSAxLjc1IDAgMDAwIDIuNzV2MTAuNUMwIDE0LjIxNi43ODQgMTUgMS43NSAxNWgxMi41QTEuNzUgMS43NSAwIDAwMTYgMTMuMjV6TTUuNSA2YS41LjUgMCAxMS0xIDAgLjUuNSAwIDAxMSAwek03IDZhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBMYXJnZXN0IENvbnRlbnRmdWwgUGFpbnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03Ljc1IDE0QTEuNzUgMS43NSAwIDAxNiAxMi4yNXYtOC41QzYgMi43ODQgNi43ODQgMiA3Ljc1IDJoNi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRoLTYuNXptLS4yNS0xLjc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTYuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OC41ek00LjkgMy41MDhhLjc1Ljc1IDAgMDEtLjI3NCAxLjAyNS4yNS4yNSAwIDAwLS4xMjYuMjE3djYuNWEuMjUuMjUgMCAwMC4xMjYuMjE3Ljc1Ljc1IDAgMDEtLjc1MiAxLjI5OEExLjc1IDEuNzUgMCAwMTMgMTEuMjV2LTYuNWMwLS42NDkuMzUzLTEuMjE0Ljg3NC0xLjUxNmEuNzUuNzUgMCAwMTEuMDI1LjI3NHpNMS42MjUgNS41MzNhLjc1Ljc1IDAgMTAtLjc1Mi0xLjI5OUExLjc1IDEuNzUgMCAwMDAgNS43NXY0LjVjMCAuNjQ5LjM1MyAxLjIxNC44NzQgMS41MTVhLjc1Ljc1IDAgMTAuNzUyLTEuMjk4LjI1LjI1IDAgMDEtLjEyNi0uMjE3di00LjVhLjI1LjI1IDAgMDEuMTI2LS4yMTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge3Njb3JlLCBzdWZmaXggPSBcIlwiLCB0aHJlc2hvbGR9IG9mIFtcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy50b3RhbEJsb2NraW5nVGltZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbLjI4NywgLjZdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuZmlyc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuMzM2LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmxhcmdlc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuNSwgNF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6K3BsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuY3VtdWxhdGl2ZUxheW91dFNoaWZ0LCB0aHJlc2hvbGQ6Wy4xLCAuMjVdfVxyXG4gICAgICAgICAgICAgICAgXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdCB0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gc2NvcmUudG9GaXhlZCgyKS5yZXBsYWNlKC9bLl0wKyQvLCBcIlwiKSAlPiA8JT0gc3VmZml4ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIE4vQVxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0zLjI4IDUuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC01LjUgNS41YS43NS43NSAwIDEwMS4wNiAxLjA2bDUuNS01LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgaWYgKHNjb3JlIDw9IHRocmVzaG9sZFswXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgaGlnaFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em0xMS43OC0xLjcyYS43NS43NSAwIDAwLTEuMDYtMS4wNkw2Ljc1IDkuMTkgNS4yOCA3LjcyYS43NS43NSAwIDAwLTEuMDYgMS4wNmwyIDJhLjc1Ljc1IDAgMDAxLjA2IDBsNC41LTQuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzFdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBhdmVyYWdlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgbG93XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDcuMjJBLjc1Ljc1IDAgMDE1IDBoNmEuNzUuNzUgMCAwMS41My4yMmw0LjI1IDQuMjVjLjE0MS4xNC4yMi4zMzEuMjIuNTN2NmEuNzUuNzUgMCAwMS0uMjIuNTNsLTQuMjUgNC4yNUEuNzUuNzUgMCAwMTExIDE2SDVhLjc1Ljc1IDAgMDEtLjUzLS4yMkwuMjIgMTEuNTNBLjc1Ljc1IDAgMDEwIDExVjVhLjc1Ljc1IDAgMDEuMjItLjUzTDQuNDcuMjJ6bS44NCAxLjI4TDEuNSA1LjMxdjUuMzhsMy44MSAzLjgxaDUuMzhsMy44MS0zLjgxVjUuMzFMMTAuNjkgMS41SDUuMzF6TTggNGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMDEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptMCA4YTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41Yy0yLjM2MyAwLTQgMS42OS00IDMuNzUgMCAuOTg0LjQyNCAxLjYyNS45ODQgMi4zMDRsLjIxNC4yNTNjLjIyMy4yNjQuNDcuNTU2LjY3My44NDguMjg0LjQxMS41MzcuODk2LjYyMSAxLjQ5YS43NS43NSAwIDAxLTEuNDg0LjIxMWMtLjA0LS4yODItLjE2My0uNTQ3LS4zNy0uODQ3YTguNjk1IDguNjk1IDAgMDAtLjU0Mi0uNjhjLS4wODQtLjEtLjE3My0uMjA1LS4yNjgtLjMyQzMuMjAxIDcuNzUgMi41IDYuNzY2IDIuNSA1LjI1IDIuNSAyLjMxIDQuODYzIDAgOCAwczUuNSAyLjMxIDUuNSA1LjI1YzAgMS41MTYtLjcwMSAyLjUtMS4zMjggMy4yNTktLjA5NS4xMTUtLjE4NC4yMi0uMjY4LjMxOS0uMjA3LjI0NS0uMzgzLjQ1My0uNTQxLjY4MS0uMjA4LjMtLjMzLjU2NS0uMzcuODQ3YS43NS43NSAwIDAxLTEuNDg1LS4yMTJjLjA4NC0uNTkzLjMzNy0xLjA3OC42MjEtMS40ODkuMjAzLS4yOTIuNDUtLjU4NC42NzMtLjg0OC4wNzUtLjA4OC4xNDctLjE3My4yMTMtLjI1My41NjEtLjY3OS45ODUtMS4zMi45ODUtMi4zMDQgMC0yLjA2LTEuNjM3LTMuNzUtNC0zLjc1ek02IDE1LjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMi41YS43NS43NSAwIDAxLS43NS0uNzV6TTUuNzUgMTJhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgQ29kaW5nIGhhYml0c1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaGFiaXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuaW5kZW50cy5zdHlsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMTg0IDEuMTQzYTEuNzUgMS43NSAwIDAwLTIuNTAyLS41N0wuOTEyIDcuOTE2YTEuNzUgMS43NSAwIDAwLS41MyAyLjMybC40NDcuNzc1YTEuNzUgMS43NSAwIDAwMi4yNzUuNzAybDExLjc0NS01LjY1NmExLjc1IDEuNzUgMCAwMC43NTctMi40NTFsLTEuNDIyLTIuNDY0em0tMS42NTcuNjY5YS4yNS4yNSAwIDAxLjM1OC4wODFsMS40MjIgMi40NjRhLjI1LjI1IDAgMDEtLjEwOC4zNWwtMi4wMTYuOTctMS41MDUtMi42MDUgMS44NS0xLjI2ek05LjQzNiAzLjkybDEuMzkxIDIuNDEtNS40MiAyLjYxLS45NDItMS42MyA0Ljk3LTMuMzl6TTMuMjIyIDguMTU3bC0xLjQ2NiAxYS4yNS4yNSAwIDAwLS4wNzUuMzNsLjQ0Ny43NzVhLjI1LjI1IDAgMDAuMzI1LjFsMS41OTgtLjc2OS0uODMtMS40MzZ6bTYuMjUzIDIuMzA2YS43NS43NSAwIDAwLS45NDQtLjI1MmwtMS44MDkuODdhLjc1Ljc1IDAgMDAtLjI5My4yNTNMNC4zOCAxNC4zMjZhLjc1Ljc1IDAgMTAxLjIzOC44NDhsMS44ODEtMi43NXYyLjgyNmEuNzUuNzUgMCAwMDEuNSAwdi0yLjgyNmwxLjg4MSAyLjc1YS43NS43NSAwIDAwMS4yMzgtLjg0OGwtMi42NDQtMy44NjN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBTdGFycmVkIHRvcGljc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRvcGljcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9waWNzIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgZGVzY3JpcHRpb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0aXRsZT1cIjwlPSBkZXNjcmlwdGlvbiAlPlwiPjwlPSBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHpNNi4zNzkgNS4yMjdBLjI1LjI1IDAgMDA2IDUuNDQydjUuMTE3YS4yNS4yNSAwIDAwLjM3OS4yMTRsNC4yNjQtMi41NTlhLjI1LjI1IDAgMDAwLS40MjhMNi4zNzkgNS4yMjd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5tb2RlICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnByb3ZpZGVyKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLm11c2ljLnByb3ZpZGVyICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubXVzaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnRyYWNrcy5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUgPSBcIlwiLCBhcnRpc3QgPSBcIlwiLCBhcnR3b3JrID0gXCJcIn0gb2YgcGx1Z2lucy5tdXNpYy50cmFja3MpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gYXJ0d29yayAlPlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIGFsdD1cIlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj48JT0gbmFtZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpc3RcIj48JT0gYXJ0aXN0ICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyBtdXNpYyByZWNlbnRseSBsaXN0ZW5lZFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQ1Ni43MzRhMS43NSAxLjc1IDAgMDEyLjgyNi41MDRsLjYxMyAxLjMyN2EzLjA4MSAzLjA4MSAwIDAwMi4wODQgMS43MDdsMi40NTQuNTg0YzEuMzMyLjMxNyAxLjggMS45NzIuODMyIDIuOTRMMTEuMDYgMTBsMy43MiAzLjcyYS43NS43NSAwIDExLTEuMDYxIDEuMDZMMTAgMTEuMDZsLTIuMjA0IDIuMjA1Yy0uOTY4Ljk2OC0yLjYyMy41LTIuOTQtLjgzMmwtLjU4NC0yLjQ1NGEzLjA4MSAzLjA4MSAwIDAwLTEuNzA3LTIuMDg0bC0xLjMyNy0uNjEzYTEuNzUgMS43NSAwIDAxLS41MDQtMi44MjZMNC40NTYuNzM0ek01LjkyIDEuODY2YS4yNS4yNSAwIDAwLS40MDQtLjA3MkwxLjc5NCA1LjUxNmEuMjUuMjUgMCAwMC4wNzIuNDA0bDEuMzI4LjYxM0E0LjU4MiA0LjU4MiAwIDAxNS43MyA5LjYzbC41ODQgMi40NTRhLjI1LjI1IDAgMDAuNDIuMTJsNS40Ny01LjQ3YS4yNS4yNSAwIDAwLS4xMi0uNDJMOS42MyA1LjczYTQuNTgxIDQuNTgxIDAgMDEtMy4wOTgtMi41MzdMNS45MiAxLjg2NnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFJlY2VudCBhcnRpY2xlc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wb3N0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjAwMiAyLjcyNWEuNzUuNzUgMCAwMS43OTctLjY5OUM4Ljc5IDIuNDIgMTMuNTggNy4yMSAxMy45NzQgMTMuMjAxYS43NS43NSAwIDExLTEuNDk3LjA5OCAxMC41MDIgMTAuNTAyIDAgMDAtOS43NzYtOS43NzYuNzUuNzUgMCAwMS0uNy0uNzk4ek0yIDEzYTEgMSAwIDExMiAwIDEgMSAwIDAxLTIgMHptLjg0LTUuOTVhLjc1Ljc1IDAgMDAtLjE3OSAxLjQ4OWMyLjUwOS4zIDQuNSAyLjI5MSA0LjggNC44YS43NS43NSAwIDEwMS40OS0uMTc4QTcuMDAzIDcuMDAzIDAgMDAyLjgzOCA3LjA1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgRnJvbSA8JT0gcGx1Z2lucy5wb3N0cy5zb3VyY2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMubGlzdC5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGl0bGUsIGRhdGV9IG9mIHBsdWdpbnMucG9zdHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwb3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAwYS43NS43NSAwIDAxLjc1Ljc1VjJoNVYuNzVhLjc1Ljc1IDAgMDExLjUgMFYyaDEuMjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMC41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMy43NUMxIDIuNzg0IDEuNzg0IDIgMi43NSAySDRWLjc1QS43NS43NSAwIDAxNC43NSAwem0wIDMuNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjVWNmgtMTFWMy43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMnptLTIuMjUgNHY2Ljc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNy41aC0xMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj48JT0gZGF0ZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djkuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDYuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTkuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djkuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDEzSDguMDZsLTIuNTczIDIuNTczQTEuNDU3IDEuNDU3IDAgMDEzIDE0LjU0M1YxM0gxLjc1QTEuNzUgMS43NSAwIDAxMCAxMS4yNXYtOS41ek05IDlhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTUuMjVhLjc1Ljc1IDAgMDAtMS41IDB2Mi41YS43NS43NSAwIDAwMS41IDB2LTIuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgTm8gcmVjZW50IHBvc3RzXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy50d2VldHMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjczLjUgMjIyLjNcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBkPVwiTTI3My41IDI2LjNhMTA5Ljc3IDEwOS43NyAwIDAgMS0zMi4yIDguOCA1Ni4wNyA1Ni4wNyAwIDAgMCAyNC43LTMxIDExMy4zOSAxMTMuMzkgMCAwIDEtMzUuNyAxMy42IDU2LjEgNTYuMSAwIDAgMC05NyAzOC40IDU0IDU0IDAgMCAwIDEuNSAxMi44QTE1OS42OCAxNTkuNjggMCAwIDEgMTkuMSAxMC4zYTU2LjEyIDU2LjEyIDAgMCAwIDE3LjQgNzQuOSA1Ni4wNiA1Ni4wNiAwIDAgMS0yNS40LTd2LjdhNTYuMTEgNTYuMTEgMCAwIDAgNDUgNTUgNTUuNjUgNTUuNjUgMCAwIDEtMTQuOCAyIDYyLjM5IDYyLjM5IDAgMCAxLTEwLjYtMSA1Ni4yNCA1Ni4yNCAwIDAgMCA1Mi40IDM5IDExMi44NyAxMTIuODcgMCAwIDEtNjkuNyAyNCAxMTkgMTE5IDAgMCAxLTEzLjQtLjggMTU4LjgzIDE1OC44MyAwIDAgMCA4NiAyNS4yYzEwMy4yIDAgMTU5LjYtODUuNSAxNTkuNi0xNTkuNiAwLTIuNC0uMS00LjktLjItNy4zYTExNC4yNSAxMTQuMjUgMCAwIDAgMjguMS0yOS4xXCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBMYXRlc3QgdHdlZXRzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50d2VldHMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gIXBsdWdpbnMudHdlZXRzLnByb2ZpbGUgPyAnZXJyb3InIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLnByb2ZpbGU/LnZlcmlmaWVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTkuNTg1LjUyYTIuNjc4IDIuNjc4IDAgMDAtMy4xNyAwbC0uOTI4LjY4YTEuMTc4IDEuMTc4IDAgMDEtLjUxOC4yMTVMMy44MyAxLjU5YTIuNjc4IDIuNjc4IDAgMDAtMi4yNCAyLjI0bC0uMTc1IDEuMTRhMS4xNzggMS4xNzggMCAwMS0uMjE1LjUxOGwtLjY4LjkyOGEyLjY3OCAyLjY3OCAwIDAwMCAzLjE3bC42OC45MjhjLjExMy4xNTMuMTg2LjMzLjIxNS41MThsLjE3NSAxLjEzOGEyLjY3OCAyLjY3OCAwIDAwMi4yNCAyLjI0bDEuMTM4LjE3NWMuMTg3LjAyOS4zNjUuMTAyLjUxOC4yMTVsLjkyOC42OGEyLjY3OCAyLjY3OCAwIDAwMy4xNyAwbC45MjgtLjY4YTEuMTcgMS4xNyAwIDAxLjUxOC0uMjE1bDEuMTM4LS4xNzVhMi42NzggMi42NzggMCAwMDIuMjQxLTIuMjQxbC4xNzUtMS4xMzhjLjAyOS0uMTg3LjEwMi0uMzY1LjIxNS0uNTE4bC42OC0uOTI4YTIuNjc4IDIuNjc4IDAgMDAwLTMuMTdsLS42OC0uOTI4YTEuMTc5IDEuMTc5IDAgMDEtLjIxNS0uNTE4TDE0LjQxIDMuODNhMi42NzggMi42NzggMCAwMC0yLjI0LTIuMjRsLTEuMTM4LS4xNzVhMS4xNzkgMS4xNzkgMCAwMS0uNTE4LS4yMTVMOS41ODUuNTJ6TTcuMzAzIDEuNzI4Yy40MTUtLjMwNS45OC0uMzA1IDEuMzk0IDBsLjkyOC42OGMuMzQ4LjI1Ni43NTIuNDIzIDEuMTguNDg5bDEuMTM2LjE3NGMuNTEuMDc4LjkwOS40NzguOTg3Ljk4N2wuMTc0IDEuMTM3Yy4wNjYuNDI3LjIzMy44MzEuNDg5IDEuMThsLjY4LjkyN2MuMzA1LjQxNS4zMDUuOTggMCAxLjM5NGwtLjY4LjkyOGEyLjY3OCAyLjY3OCAwIDAwLS40ODkgMS4xOGwtLjE3NCAxLjEzNmExLjE3OCAxLjE3OCAwIDAxLS45ODcuOTg3bC0xLjEzNy4xNzRhMi42NzggMi42NzggMCAwMC0xLjE4LjQ4OWwtLjkyNy42OGMtLjQxNS4zMDUtLjk4LjMwNS0xLjM5NCAwbC0uOTI4LS42OGEyLjY3OCAyLjY3OCAwIDAwLTEuMTgtLjQ4OWwtMS4xMzYtLjE3NGExLjE3OCAxLjE3OCAwIDAxLS45ODctLjk4N2wtLjE3NC0xLjEzN2EyLjY3OCAyLjY3OCAwIDAwLS40ODktMS4xOGwtLjY4LS45MjdhMS4xNzggMS4xNzggMCAwMTAtMS4zOTRsLjY4LS45MjhjLjI1Ni0uMzQ4LjQyMy0uNzUyLjQ4OS0xLjE4bC4xNzQtMS4xMzZjLjA3OC0uNTEuNDc4LS45MDkuOTg3LS45ODdsMS4xMzctLjE3NGEyLjY3OCAyLjY3OCAwIDAwMS4xOC0uNDg5bC45MjctLjY4ek0xMS4yOCA2Ljc4YS43NS43NSAwIDAwLTEuMDYtMS4wNkw3IDguOTQgNS43OCA3LjcyYS43NS43NSAwIDAwLTEuMDYgMS4wNmwxLjc1IDEuNzVhLjc1Ljc1IDAgMDAxLjA2IDBsMy43NS0zLjc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAyLjM3YTYuNSA2LjUgMCAwMDYuNSAxMS4yNi43NS43NSAwIDAxLjc1IDEuMjk4IDggOCAwIDExMy45OTQtNy4yNzMuNzU0Ljc1NCAwIDAxLjAwNi4wOTV2MS41YTIuNzUgMi43NSAwIDAxLTUuMDcyIDEuNDc1QTQgNCAwIDExMTIgOHYxLjI1YTEuMjUgMS4yNSAwIDAwMi41IDBWNy44NjdhNi41IDYuNSAwIDAwLTkuNzUtNS40OTZWMi4zN3pNMTAuNSA4YTIuNSAyLjUgMCAxMC01IDAgMi41IDIuNSAwIDAwNSAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50d2VldHMudXNlcm5hbWUgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLnR3ZWV0cy5wcm9maWxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgOiB0d2l0dGVyIHVzZXJuYW1lIG5vdCBmb3VuZFxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cy5wcm9maWxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cy5saXN0Lmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge3RleHQsIGNyZWF0ZWRfYXR9IG9mIHBsdWdpbnMudHdlZXRzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d2VldFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8JS0gdGV4dCAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPjwlPSBuZXcgRGF0ZShjcmVhdGVkX2F0KS50b0dNVFN0cmluZygpICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djkuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDYuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTkuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djkuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDEzSDguMDZsLTIuNTczIDIuNTczQTEuNDU3IDEuNDU3IDAgMDEzIDE0LjU0M1YxM0gxLjc1QTEuNzUgMS43NSAwIDAxMCAxMS4yNXYtOS41ek05IDlhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTUuMjVhLjc1Ljc1IDAgMDAtMS41IDB2Mi41YS43NS43NSAwIDAwMS41IDB2LTIuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICBObyByZWNlbnQgdHdlZXRzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuaXNvY2FsZW5kYXIpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDBhLjc1Ljc1IDAgMDEuNzUuNzVWMmg1Vi43NWEuNzUuNzUgMCAwMTEuNSAwVjJoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djEwLjVBMS43NSAxLjc1IDAgMDExMy4yNSAxNkgyLjc1QTEuNzUgMS43NSAwIDAxMSAxNC4yNVYzLjc1QzEgMi43ODQgMS43ODQgMiAyLjc1IDJINFYuNzVBLjc1Ljc1IDAgMDE0Ljc1IDB6bTAgMy41aDguNWEuMjUuMjUgMCAwMS4yNS4yNVY2aC0xMVYzLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgyem0tMi4yNSA0djYuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMC41YS4yNS4yNSAwIDAwLjI1LS4yNVY3LjVoLTExelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgQ29udHJpYnV0aW9ucyBjYWxlbmRhclxyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaXNvY2FsZW5kYXIuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuaXNvY2FsZW5kYXIuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIGlmICghcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03Ljk5OCAxNC41YzIuODMyIDAgNS0xLjk4IDUtNC41IDAtMS40NjMtLjY4LTIuMTktMS44NzktMy4zODNsLS4wMzYtLjAzN2MtMS4wMTMtMS4wMDgtMi4zLTIuMjktMi44MzQtNC40MzQtLjMyMi4yNTYtLjYzLjU3OS0uODY0Ljk1My0uNDMyLjY5Ni0uNjIxIDEuNTgtLjA0NiAyLjczLjQ3My45NDcuNjcgMi4yODQtLjI3OCAzLjIzMi0uNjEuNjEtMS41NDUuODQtMi40MDMuNjMzYTIuNzg4IDIuNzg4IDAgMDEtMS40MzYtLjg3NEEzLjIxIDMuMjEgMCAwMDMgMTBjMCAyLjUzIDIuMTY0IDQuNSA0Ljk5OCA0LjV6TTkuNTMzLjc1M0M5LjQ5Ni4zNCA5LjE2LjAwOSA4Ljc3LjE0NiA3LjAzNS43NSA0LjM0IDMuMTg3IDUuOTk3IDYuNWMuMzQ0LjY4OS4yODUgMS4yMTguMDAzIDEuNS0uNDE5LjQxOS0xLjU0LjQ4Ny0yLjA0LS44MzItLjE3My0uNDU0LS42NTktLjc2Mi0xLjAzNS0uNDU0QzIuMDM2IDcuNDQgMS41IDguNzAyIDEuNSAxMGMwIDMuNTEyIDIuOTk4IDYgNi40OTggNnM2LjUtMi41IDYuNS02YzAtMi4xMzctMS4xMjgtMy4yNi0yLjMxMi00LjQzOC0xLjE5LTEuMTg0LTIuNDM2LTIuNDI1LTIuNjUzLTQuODF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBDdXJyZW50IHN0cmVhayA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5zdHJlYWsuY3VycmVudCAlPiBkYXk8JT0gcyhwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50KSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxLjc1YS43NS43NSAwIDAwLTEuNSAwdjEyLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNC41YS43NS43NSAwIDAwMC0xLjVIMS41VjEuNzV6bTE0LjI4IDIuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDEwIDcuOTQgNy41MyA1LjQ3YS43NS43NSAwIDAwLTEuMDYgMEwzLjIyIDguNzJhLjc1Ljc1IDAgMDAxLjA2IDEuMDZMNyA3LjA2bDIuNDcgMi40N2EuNzUuNzUgMCAwMDEuMDYgMGw1LjI1LTUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICB+PCU9IHBsdWdpbnMuaXNvY2FsZW5kYXIuYXZlcmFnZSAlPiBjb21taXRzIHBlciBkYXlcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5zdmcpIHsgJT5cclxuICAgICAgICAgICAgPCUtIHBsdWdpbnMuaXNvY2FsZW5kYXIuc3ZnICU+XHJcbiAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG4gICAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICA8c3Bhbj5UaGVzZSBtZXRyaWNzIDwlPSAhY29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiZG9lcyBub3QgaW5jbHVkZVwiIDogXCJpbmNsdWRlc1wiICU+IHByaXZhdGUgY29udHJpYnV0aW9uczwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPkxhc3QgdXBkYXRlZCA8JT0gbmV3IERhdGUoKS50b0dNVFN0cmluZygpICU+IHdpdGggbG93bGlnaHRlci9tZXRyaWNzQDwlPSBtZXRhLnZlcnNpb24gJT48L3NwYW4+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZvcmVpZ25PYmplY3Q+XHJcbjwvc3ZnPiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwgU2Vnb2UgVUkgRW1vamk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBIZWFkZXJzICovXHJcbiAgaDEsIGgyLCBoMyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDJweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG4gIGgxIHN2ZywgaDIgc3ZnLCBoMyBzdmcge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gIH1cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuLyogRmllbGRzICovXHJcbiAgc2VjdGlvbiA+IC5maWVsZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gIC5maWVsZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWVsZCBzdmcge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZpbGw6ICM5NTlkYTU7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHtcclxuICAgIGNvbG9yOiAjY2IyNDMxO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Igc3ZnIHtcclxuICAgIGZpbGw6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogRGlzcGxheXMgKi9cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5yb3cgc2VjdGlvbiB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLmNvbHVtbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgLmhvcml6b250YWwgLmZpZWxkIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAubm8td3JhcCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4vKiBVc2VyIGF2YXRhciAqL1xyXG4gIC5hdmF0YXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogQ29tbWl0IGNhbGVuZGFyICovXHJcbiAgLmNhbGVuZGFyLmZpZWxkIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIH1cclxuICAuY2FsZW5kYXIgLmRheSB7XHJcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNywzMSwzNSwuMDQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XHJcbiAgfVxyXG5cclxuLyogUHJvZ3Jlc3MgYmFycyAqL1xyXG4gIHN2Zy5iYXIge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcblxyXG4vKiBMYW5ndWFnZSAqL1xyXG4gIC5maWVsZC5sYW5ndWFnZSB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHNtYWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBvcGFjaXR5OiAuNztcclxuICB9XHJcblxyXG4vKiBMYWJlbHMgKi9cclxuICAubGFiZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjhGRjtcclxuICAgIGNvbG9yOiAjMDM2NkQ2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgbWFyZ2luOiAycHggNXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUVGRjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4vKiBIYWJpdHMgKi9cclxuICAuaGFiaXRzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzdweDtcclxuICB9XHJcblxyXG4vKiBGb290ZXIgKi9cclxuICBmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuLyogU3BlZWQgdGVzdCBjYXRlZ29yaWVzICovXHJcbiAgLmNhdGVnb3JpZXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxuICB9XHJcbiAgLmNhdGVnb3JpZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcblxyXG4vKiBHYXVnZXMgKi9cclxuICAuZ2F1Z2Uge1xyXG4gICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xyXG4gICAgZmlsbDogbm9uZTtcclxuICB9XHJcbiAgLmdhdWdlLmhpZ2gge1xyXG4gICAgY29sb3I6ICMxOGI2NjM7XHJcbiAgfVxyXG4gIC5nYXVnZS5hdmVyYWdlIHtcclxuICAgIGNvbG9yOiAjZmI4YzAwO1xyXG4gIH1cclxuICAuZ2F1Z2UubG93IHtcclxuICAgIGNvbG9yOiAjZTUzOTM1O1xyXG4gIH1cclxuICAuZ2F1Z2UtYmFzZSwgLmdhdWdlLWFyYyB7XHJcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcclxuICAgIHN0cm9rZS13aWR0aDogMTA7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlIHtcclxuICAgIHN0cm9rZS1vcGFjaXR5OiAuMjtcclxuICB9XHJcbiAgLmdhdWdlLWFyYyB7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6IDI1MG1zO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tZ2F1Z2UgMXMgZWFzZSBmb3J3YXJkc1xyXG4gIH1cclxuICAuZ2F1Z2UgdGV4dCB7XHJcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbiAgICBmb250LXNpemU6IDQwcHg7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG4gICAgdGV4dC1hbmNob3I6IG1pZGRsZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG4gIC5nYXVnZSAudGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLWdhdWdlIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBzdHJva2UtZGFzaGFycmF5OiAwIDMyOTtcclxuICAgIH1cclxuICB9XHJcbiAgLmF1ZGl0cyB7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgfVxyXG4gIC5hdWRpdC50ZXh0IHtcclxuICAgIG1pbi13aWR0aDogNDJweDtcclxuICB9XHJcbiAgLmF1ZGl0IHN2ZyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIC5hdWRpdC5oaWdoIHtcclxuICAgIGZpbGw6ICMxOGI2NjM7XHJcbiAgfVxyXG4gIC5hdWRpdC5hdmVyYWdlIHtcclxuICAgIGZpbGw6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5hdWRpdC5sb3cge1xyXG4gICAgZmlsbDogI2U1MzkzNTtcclxuICB9XHJcblxyXG4vKiBNdXNpYyBwbHVnaW4gKi9cclxuICAudHJhY2tsaXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogMjhweDtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICAudHJhY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnRyYWNrIGltZyB7XHJcbiAgICBtYXJnaW46IDAgMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcclxuICB9XHJcbiAgLnRyYWNrIC5uYW1lIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gIH1cclxuICAudHJhY2sgLmFydGlzdCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBvcGFjaXR5OiAuNztcclxuICB9XHJcblxyXG4vKiBQb3N0cyBwbHVnaW4gKi9cclxuICAucG9zdCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAudGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgd2lkdGg6IDQwMHB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIG1heC1oZWlnaHQ6IDQwcHg7O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3MgLmRhdGUge1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBvcGFjaXR5OiAuNztcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDFweDtcclxuICB9XHJcblxyXG4vKiBUb3BpY3MgKi9cclxuICAudG9waWNzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG5cclxuLyogVHdlZXRzICovXHJcbiAgLnR3ZWV0IHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIG1hcmdpbi10b3A6IDZweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMThweDtcclxuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzc3Nzc3N0IyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XHJcbiAgfVxyXG5cclxuICAudHdlZXQgLm1lbnRpb24sIC50d2VldCAubGluaywgLnR3ZWV0IC5oYXNodGFnIHtcclxuICAgIGNvbG9yOiAjMDM2NmQ2O1xyXG4gIH1cclxuXHJcbiAgLnR3ZWV0IC5kYXRlIHtcclxuICAgIG1hcmdpbjogNnB4IDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBvcGFjaXR5OiAuNztcclxuICB9XHJcblxyXG4vKiBGYWRlIGFuaW1hdGlvbiAqL1xyXG4gIC5hZiB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tZmFkZSAxcyBlYXNlIGZvcndhcmRzO1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFuaW1hdGlvbi1mYWRlIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsicXVlcnkiOiJxdWVyeSBNZXRyaWNzIHtcclxuICB1c2VyKGxvZ2luOiAkbG9naW4pIHtcclxuICAgIGRhdGFiYXNlSWRcclxuICAgIG5hbWVcclxuICAgIGxvZ2luXHJcbiAgICBjcmVhdGVkQXRcclxuICAgIGF2YXRhclVybFxyXG4gICAgd2Vic2l0ZVVybFxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDQ4XHJcbiAgKyAoISFiYXNlLmhlYWRlcikqNjJcclxuICArICghIWJhc2UubWV0YWRhdGEpKjEwOFxyXG4gICsgKCEhYmFzZS5hY3Rpdml0eSkqMTA4XHJcbiAgKyAoISFiYXNlLmNvbW11bml0eSkqOTRcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxNDJcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCEhcGx1Z2lucy50cmFmZmljKSkqMThcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCEhcGx1Z2lucy5mb2xsb3d1cCkpKjEwMlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmxpbmVzKSkqMzRcclxuICArICghIXBsdWdpbnMucGFnZXNwZWVkKSoxMTBcclxuICArICghIXBsdWdpbnMubGFuZ3VhZ2VzKSoxMjRcclxuICArIE1hdGgubWF4KDAsICgoKCEhYmFzZS5tZXRhZGF0YSkrKCEhYmFzZS5oZWFkZXIpKygoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSsoISFiYXNlLnJlcG9zaXRvcmllcykrKCEhcGx1Z2lucy5wYWdlc3BlZWQpKyghIXBsdWdpbnMubGFuZ3VhZ2VzKSktMSkpKjIwXHJcbiU+XCI+XHJcbiAgPCVcclxuICAgIG1ldGEuJCA9IGA8c3BhbiBjbGFzcz1cInBzMS1wYXRoXCI+JHtgJHt1c2VyLmxvZ2lufWAudG9Mb2NhbGVMb3dlckNhc2UoKX1AbWV0cmljczwvc3Bhbj46PHNwYW4gY2xhc3M9XCJwczEtbG9jYXRpb25cIj5+PC9zcGFuPiR7Y29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiI1wiIDogXCIkXCJ9YFxyXG4gICAgbWV0YS5hbmltYXRpb25zID0gIW1ldGEucGxhY2Vob2xkZXIgPyB7c3RkaW46LjE2LCBzdGRvdXQ6LjI4LCBsZW5ndGg6KDIrT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoK09iamVjdC5rZXlzKHBsdWdpbnMpLmxlbmd0aCl9IDoge3N0ZGluOjAsIHN0ZG91dDowLCBsZW5ndGg6MH1cclxuICAlPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gICAgICAuc3RkaW4sIC5zdGRvdXQge1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogPCU9IG1ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZG91dCAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgPCUgZm9yIChsZXQgaSA9IDAsIGQgPSAwOyBpIDwgbWV0YS5hbmltYXRpb25zLmxlbmd0aDsgaSsrLCBkKz1tZXRhLmFuaW1hdGlvbnMuc3RkaW4rbWV0YS5hbmltYXRpb25zLnN0ZG91dCkgeyAlPlxyXG4gICAgICAgIC5zdGRpbjpudGgtb2YtdHlwZSg8JT0gaSsxICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN0ZG91dDpudGgtb2YtdHlwZSg8JT0gaSsyICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkK21ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwlIGlmIChpID09PSBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoLTEpIHsgJT5cclxuICAgICAgICAgIGZvb3RlciB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilIA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilqE8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gZXhpdFwiPuKclTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjxwcmU+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG48ZGl2IGNsYXNzPVwiYmFubmVyXCI+PCUjIC0lPlxyXG5HaXRIdWIgbWV0cmljcyBnZW5lcmF0b3IgPCU9IG1ldGEudmVyc2lvbiAlPlxyXG5UaGVzZSBnZW5lcmF0ZWQgbWV0cmljcyBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk9cclxuV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxyXG5cclxuTGFzdCBnZW5lcmF0ZWQ6IDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IHdob2FtaTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPGI+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9iPiByZWdpc3RlcmVkPTwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24ubWF0Y2goL14uKz8gW3ltXS8pWzBdLnJlcGxhY2UoLyAvZywgXCJcIikgJT4sIHVpZD08JT0gYCR7dXNlci5kYXRhYmFzZUlkfWAuc3Vic3RyKC00KSAlPiwgZ2lkPTwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPlxyXG4gIGNvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+IDxiPjwlIGZvciAoY29uc3QgW3gsIHtjb2xvcn1dIG9mIE9iamVjdC5lbnRyaWVzKGNvbXB1dGVkLmNhbGVuZGFyKSkgeyAtJT48c3BhbiBzdHlsZT1cImNvbG9yOjwlPSBjb2xvciAlPlwiPiM8L3NwYW4+PCUgfSAlPjwvYj5cclxuICBmb2xsb3dlZCBieSA8Yj48JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpfHwoYmFzZS5jb21tdW5pdHkpKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gZ2l0IHN0YXR1czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKGJhc2UuYWN0aXZpdHkpIHsgLSU+XHJcbjxiPlJlY2VudCBhY3Rpdml0eTwvYj5cclxuICA8Yj48JT0gYCR7Y29tcHV0ZWQuY29tbWl0c31gLnBhZFN0YXJ0KDUpICU+PC9iPiBjb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zfWAucGFkU3RhcnQoNSkgJT48L2I+IHB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWU8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWUgY29tbWVudDwlPSBzKHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50KSAlPlxyXG48JSB9IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpJiYoYmFzZS5jb21tdW5pdHkpKSB7IC0lPlxyXG5cclxuPCUgfSAtJT5cclxuPCUgaWYgKGJhc2UuY29tbXVuaXR5KSB7IC0lPlxyXG48Yj5UcmFja2VkIGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmZvbGxvd2luZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPiBmb2xsb3dlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzcG9uc29yZWRcclxuICA8Yj48JT0gYCR7dXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzdGFycmVkXHJcbiAgPGI+PCU9IGAke3VzZXIud2F0Y2hpbmcudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPiB3YXRjaGVkXHJcbjwlIH0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL3JlcG9zaXRvcmllczwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IC0gPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPlxyXG48JSBpZiAocGx1Z2lucy50cmFmZmljKSB7IGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgLSU+XHJcbi0tLS0gIDxiPiAgICAgPC9iPiAgdmlld3MgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgdmlld3NcclxuPCUgfX0gLSU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgc3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHdhdGNoZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLmdpc3RzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGdpc3Q8JT0gcyh1c2VyLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbjwlIGlmIChwbHVnaW5zLmZvbGxvd3VwKSB7IGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7IC0lPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIElTU1VFUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIFBVTExfUkVRVUVTVFMgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+KTwvc3Bhbj5cclxuPCUgfSBlbHNlIHsgLSU+XHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgSVNTVUVTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkfWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJTilIDilIAgY2xvc2VkXHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgUFVMTF9SRVFVRVNUU1xyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBtZXJnZWRcclxuPCUgfX0gLSU+XHJcbjwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgLSU+XHJcbmRyLXggICAgICAgICBMSUNFTlNFXHJcbi1yLS0gICAgICAgICDilJTilIDilIAgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxpbmVzKSB7IGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbjxzcGFuIGNsYXNzPVwiZGlmZiBlcnJvclwiPkBAIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yLm1lc3NhZ2UgJT4gQEA8L3NwYW4+PCUgfSBlbHNlIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmXCI+QEAgLTwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gKzwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IEBAPC9zcGFuPlxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxvY2FsZTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUjIC0lPlxyXG48JSB9IGVsc2UgeyBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZX0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7IC0lPlxyXG48Yj48JT0gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnBhZEVuZCgxMikgJT48L2I+IFs8JT0gXCIjXCIucmVwZWF0KE1hdGguY2VpbCgxMDAqdmFsdWUvNSkpLnBhZEVuZCgyMCkgJT5dIDwlPSAoMTAwKnZhbHVlKS50b0ZpeGVkKDIpLnBhZEVuZCg1KSAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBjdXJsIC1JIDwlPSB1c2VyLndlYnNpdGVVcmwgJT48L2Rpdj48JSMgLSU+XHJcbjxkaXYgY2xhc3M9XCJzdGRvdXRcIj48JSMgLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvcikgeyAtJT5cclxuPHNwYW4gY2xhc3M9XCJlcnJvclwiPjwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+PC9zcGFuPjwlIH0gZWxzZSB7IC0lPlxyXG48Yj5Vc2VyLUFnZW50PC9iPjogR29vZ2xlIFBhZ2VTcGVlZCBBUElcclxuPGI+TG9jYXRpb248L2I+OiA8JT0gdXNlci53ZWJzaXRlVXJsICU+XHJcbjwlIGZvciAoY29uc3Qge3Njb3JlLCB0aXRsZX0gb2YgcGx1Z2lucy5wYWdlc3BlZWQuc2NvcmVzKSB7IC0lPlxyXG48Yj48JT0gYFgtJHt0aXRsZS5yZXBsYWNlKC8gL2csIFwiLVwiKX1gICU+PC9iPjogPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gTWF0aC5yb3VuZChzY29yZSoxMDApIDogXCItXCIgJT4lXHJcbjwlIH19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UubWV0YWRhdGEpIHsgLSU+XHJcblxyXG48Zm9vdGVyPkNvbm5lY3Rpb24gcmVzZXQgYnkgPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+PC9mb290ZXI+PCUjIC0lPlxyXG48JSB9IC0lPjwvcHJlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+XHJcblxyXG4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogVGl0bGUgYmFyICovXHJcbiAgLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjNTA0YjQ1IDAlLCMzYzNiMzcgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgY29sb3I6ICNkNWQwY2U7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN2Q3ODcxIDAlLCAjNTk1OTUzIDEwMCUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICB9XHJcblxyXG4gIC5idXR0b24uZXhpdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2YzNzQ1OCAwJSwgI2RlNGMxMiAxMDAlKTtcclxuICB9XHJcblxyXG4vKiBUZXJtaW5hbCAqL1xyXG4gIHByZSwgLmJhbm5lciwgZm9vdGVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBjb2xvcjogI0RERERERDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICM0MjA5MkI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuICAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgY29sb3I6ICNBRTlEQTc7XHJcbiAgfVxyXG5cclxuLyogUHJvbXB0ICovXHJcbiAgLnBzMS1wYXRoIHtcclxuICAgIGNvbG9yOiAjN0VEQTI5O1xyXG4gIH1cclxuXHJcbiAgLnBzMS1sb2NhdGlvbiB7XHJcbiAgICBjb2xvcjogIzQ4NzhjMDtcclxuICB9XHJcblxyXG4vKiBEaWZmICovXHJcbiAgLmRpZmYge1xyXG4gICAgY29sb3I6ICMzQTk2REQ7XHJcbiAgfVxyXG5cclxuLyogRXJyb3IgKi9cclxuICAuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogQW5pbWF0aW9ucyAqL1xyXG4gIC5zdGRpbiwgZm9vdGVyIHtcclxuICAgIHdpZHRoOiAwJTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZGluLWFuaW1hdGlvbjtcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc3Rkb3V0IHtcclxuICAgIG1heC1oZWlnaHQ6IDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzdGRvdXQtYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3RkaW4tYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAxMDAlIHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3Rkb3V0LWFuaW1hdGlvbiB7XHJcbiAgICAwJSB7IG1heC1oZWlnaHQ6IDA7IH1cclxuICAgIDEwMCUgeyBtYXgtaGVpZ2h0OiAzNjBweDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRCtrQUJJQUFBQUFjYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBL2lBQUFBQndBQUFBY2lUdjBNVWRFUlVZQUFENjBBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFQMVFBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUErM0FBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCdzFvL1dZMjFoY0FBQUF5QUFBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxhQUFBQUVNQUFBQnNKdUVRaFdad1oyMEFBQVBRQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUHF3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWdBQUFMM3dBQUZkUWcrSEVybWhsWVdRQUFBR1VBQUFBTmdBQUFEWVhtUnFzYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWZsb2JYUjRBQUFDWEFBQUFNRUFBQURZTDNRZHcyeHZZMkVBQUF1c0FBQUEwZ0FBQU5JdkJCbCtiV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSFJBZ1p1WVcxbEFBQTcvQUFBQWNRQUFBT1RBVnl1cG5CdmMzUUFBRDNBQUFBQTdBQUFBVWxrWDhUeWNISmxjQUFBQ3NRQUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW0xT3V3elJmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NVZi81UDVsQk9nRmh3QUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K1QvMDlZWGpBQVJWQUFDd0NwRkFjUUFBRUFBQUJvQUhBQUJRQXZBQUlBQWdBc0FGb0FqUUFBQUtZQkNnQUNBQUY0Mm1OZ1lUbkRPSUdCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobllPVmtnQUZtQmlRUUdCcm95SENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCbi9ReWlBSGphWXpuRE1KVUJDRmpPUUREalM0Yi9ERFlNbXhtTUdDWXpQbVhVWk14bTJNK3dpckVFaU84ekhHUFl3M0NIWVRkUVpES1FkWkxoS2NNNWhnT005eGs3R0dvWlZqR3NaL2dIMU1YRkVNQlFCc1FnbUFURUp4aUt3V3c1QmplR0NDQU53dk1ZcW9BOHJ2L2ZnT3B0R0pZemVqR21NYno0LzRUUmtxR2RRWldoSGdnbkFXMnBaL0FGa3ZzWW5CazIvdjhEWkxlQTVTWUQzVmJLNE1GZ0JOVHRCdFMvaVdFamt6VERPNFpwRE4vKy8vNy9tMEdFWVI4VE84TnVBQkZVUGtrQUFBQjQybU5nWUdCbWdHQVpCa1lHRVBBQjhoakJmQllHQXlETkFZUk1RRHFhb1k1aHcvLy9RSllDUXl5STlmL3gvMGYvTjBKMWdRRWpHd09jeXdqU3c4U0FDb0NTekN5c2JPd2NuRnpjUEx4OC9BS0NRc0lpb21MaUVwSlMwakt5Y3ZJS2lrcktLcXBxNmhxYVd0bzZ1bnI2Qm9aR3hpYW1adVlXbGxiV05yWjJEUFlPams3T0xxNXU3aDZlWHQ0K3ZuNytBWUZCd1NHaFllRVJrVkhSTWJGeDhRa01CRUVpQTAwQkFCVk5INWdBQUhqYXJWZHJXeHZIRlo3VkRZd0JBNUt3bTNYZFVjYWlManVTU2VzNHhGWWNzc3VpT0VwU2dYRzc2elR0TGhMdS9aTDBScS9wL2FMOG1iT2lmZXA4eTAvTGUyWldDampnUG4yZThrSG5uWmwzNWx6bnpFSkNTeElQb3pDV3N2ZEVMTzcycVBMZ1VVUzNYTG9SSjQvbDZHRkVoV2I2MGF5WUZZT0JPbkFiRFJJeGlVQnRqNFVqZ3NSdmthTkpKbzliVk5DcW9Sb3RLbW81UEM3VzZzSVBxQnJJSlBHelFpM3dzMll4b0VLd2Z5UnBYZ0VFNlpCSy9hTnhvVkRBTWRRNHZOcmcyZkZpM2ZHdlNrRGxqNnRPRld1S1JEODZqTWVyVHNFb0xHa3FlbFFQSXRaSHEwR1FFMXc1bFBSeG4wcHJqOFkzbklVZ0hJUlVDYU1HRlp2eDNqc1J5TzRva3RUdlkyb0xiTnBrdEJuSE1yTnNXSFFEVS9sSTBnYXZiekR6NDM0a0VZMVJLbW11SHlXWWtidzJ4K2cybzl1Sm04Ung3Q0phTkI4TVNPeEZKSHBNYm1Eczl1Z2FvMnU5OU1tU0dERGpTVmtjeFBFd2pjbng0amozSUpaRCtLUDh1RVZsTFdGQnFabkNwNW1nSDlHTThtbFcrY2dBdGlRdHFwaHdJeEp5bU0wYytKSVgyVjNYbXMrL1ZFekNBWlhYRzFnTTVFaU9vQ3ZiS0RjUm9kMG82YnZwWGh5cHVCRkwybm9RWWMzbHVPU210R2hHMDRYQUc0dUNUZk1zaHNwWEtCZmxwMVE0ZUV6T0FJYlF6SHFMTG1qSjFpN0NyWkk0a0h3Q2JTVXhVNUp0WSsyY0hsOVlGRUhvcnplbWhYTlJueTZrZVh1SzQ4R0VBSzRuTWh5cGxKTnFnaTFjVGdoSkYwWk9yRVJxVmJwdFZTeWNzNTJ1WTVkd1AzWHQ1S1pGYlJ3NlhwZ1h4UkJhWE5XSTExSEVsM1JXS0lRMFRMZGJ0S1JCbFpJdUJXL3dBUURJRUMzeGFBK2pKWk92WlJ5MFpJSWlFWU1CTk5OeWtNaFJJbWtaWVd2Uml1N3RSMWxwdUIxZnA0VkRkZFNpcXU3dFJyMEhkdEp0WUw1cTVtczZFeXZCd3loYldRbklTWDFhOXZqS29iVDg3QkwvTE9HSG5GWGtvdGpzUnhtSEQvNzZJMlFZYXBmV0d3cmJKdGkxNjd3Rk41bG5ZbmpTaGYxZHpKNU8xamtweklTb0tzUXJJSEZ2N0RpT3lWWmRpMHdVd3YySVZwUXZRMXBFK1Mwb2xCeEtzWWFaQkRiODU4b1ZSeXlMcXZCOW55TlJneUZZeTJxekhuM291YzhqYnF0d3R1NjE2TExPSEpaWEVIaVduOU5aa2VWek9pdXhkSFZXWm5sVlp4V1duOWZaRE10ck9wdGwrUVdkWFdEcGFUVkpCRlVTaEZ6Sk5qbnY4clZwa1Q2eHVEcGRmTTh1dGs0c3JrMFgzN2VMVWd1NjVKM25NUHY2Yitzck8zclN2d2I4azdEcmVmakhVc0UvbHRmaEg4c20vR081QnY5WWZoSCtzYndCLzFoK0NmNnhYSWQvTE50YWRremwzdFJRZXlXUjZINU9FcGpjNGphMnVYZzNOTjMwNkNZdTVndTRFMTE1VGxwVnVxbTR3eitUNGJMM1g1N2tPbHVzaEZ4NjlNSjZWbmJxWVlUdXlGNSs1VVI0enVQYzB2SkZZL21MT00xeXdzL3F4UDA5MHhhZUY2di9FdnkzZlU5dFpyZWNPdnQ2Ry9HQUEyZmJqMXVUYnJib0pkMiszR25SNW4ram9zSUhvTCtNRkluVnBtekxMdmNHaFBiK2FOUlZYVFNUQ0M4ZzJpK2VwazNIcWRjUTRUdG9ZcXQwR2JRUyttclQwTEo1NGRQRndEc2N0WldVblJIT3ZIdWFKdHYyUEtyZ051UnNTUWszbDYzZDZMZ2t5OUk5THEyVm40dDlicmx6Nk43SzdGQTdDVldDcCs5dHdtM1BQaytsSUJrcUt1TjF4WElwU0YzZ2hGdmUwM3RTbUlhSFFPMGd4d29hZHZqcG1ndU1GcHgzaGhKbG0yc0ZseGpKS0tQZ3lwODVGU2V5RVUwMm9vamZ2S1YrcWd1RjBKbkVRbUsydkpiSFFuVVFwbGVtU3pSbjFuZFVsNVZ5RnU5TlE4ak8yRWlUMkkvYXNvT1huYTNQSnlYYmxhZUNLazJNN3AvOGlMRkpQS3ZhODJ3cEx2bFhUMWdTVE5LVjhKZk8weTVQVXJ5Ri90SG1LTzdRNVNEcXUzaGNaU2R1Wnh0T0RmZjJ0Vk9yZTI3LzFLcC81dDVuN1FnMDNmR2VwWEJiMDExdkJOdTR4dURVdVZRa3RFMGIyQkVhbDdrKzEyemtVM3lwK2RaMUxsQ0Y2OVBHemJQbjcraHNEby9PWk12L1dOTGQvMWNWczAvY3h6b0tyZXBFdlRUaTNNNHVHdkFkYnhLVjF6RzY2elZVSHBmY20ya0k3aU1FZFh2dDhWbUNHMTV0MDIzYzhqZk9tZS9oT0tkV3BaZUEzOVQwTXNSYkhNVVE0Wlk3ZUlFbjBYcGJjMEhUVzRCZjFXTWhkZ0Q2QUE2RFhUMTJ6TXdlZ0psNXdKd3V3RDV6R0R4a0RvT3ZNWWZCMS9VeGVtRUFGQUU1QnNYNjJMRnpqNERzM0R2TWN4aDlnM2tHdmNzOGc3N0pQSU8reFRwRGdJUjFNa2haSjRNRDFzbGd3SnpYQVliTVlYRElIQWFQbWNQZzI4YXViYUR2R0xzWWZkZll4ZWg3eGk1RzN6ZDJNZnFCc1l2UkQ0MWRqSDVrN0dMMFk4UzRNMDNnVDh5SXRnRGZzL0Exd1BjNTZHYmtZL1JUdkxVNTUyY1dNdWZuaHVQa25GOWc4eXZUVTM5cFJtYkhrWVc4NDFjV012M1hPQ2NuL01aQ0p2eldRaWI4RHR4NzAvTitiMGFHL29HRlRQK0RoVXovSTNibWhEOVp5SVEvVzhpRXY0RDc2dlM4djVxUm9mL05RcWIvM1VLbS93TTdjOEkvTFdUQ3lFSW1mS2pIRjgwbkxsWGNjYWxRRFBIZkU5cGc3SHMwZTBqRjYvMmp5V1BkK2dUMW9BUDZBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkdGpCb1N6TXphSUdZMncxWUZEaUUySm01SUR3VEpnMDJTVll3ajh0cEQ0OERod1BMQVFabUJtNGduOWRwRDRNREdJTDRPNEVrZzh0R0ZjYU93SWdORGgwUklINkt5MFlORUg4SEJ3TkVnTUVsVW5xak9raG9GMGNEQXlPTFEwZHlDRXdDQkxZYk1TbXhpYkF5ODJudFlQemZ1b0dsZHlNVGc4dG0xaFEyQmhjWEFIMlZMZ2NBQUhqYVkyQWdBSXdna0dVbkF3UHpuUC9mL2hVaFdBenpnSEFLd3hTV3hRd01yQXJNY3hnWS90V3c3UHovaWpXWWVkUC9WLy9TWUhwWnpSZ2ZBL0ZGQU1tRUdZZ0FBQUFBaUFDSUFJZ0FpQURpQVBBQmtBSmlBd3dENmdRZ0JHUUVxZ1VvQlhBRm5nWElCZTRHTEFaMkJzQUhQQWU0Q0JJSWhBanFDVUFKdWdvZUNtQUtwZ3JrQ3lvTGFBdnlESjROQmcxc0RkZ09KZzdBRDB3UHhoQkNFSWdRM0JGMkVjWVNSQkxBRXdvVFloUXFGS3dWUUJXWUZlNFdRaGJDRjBRWHFoZ0FHRHdZZUJqQUdPb1pHQm5lR3B3YkJodkVIQ0ljcGgyRUhnd2VHQjRrSHJnZkNCL09JSElndWlGbUloSWlraU1tSTRRa0VpUm1KTllsVmlXNEpqb213aWIwSjNvbjJpZ29LTllwMkNyd0t6d3JhQ3VvQUFCNDJyVjhCM3djMWJYM3ZWTzNhRmZhMVJaSjI3UmR2YTU2VzNmWjZ1NnliRXR5bDhGTjJJQndFemJHZ0ttMkFadGdJTlFrTkdPRFFYVDRDQ1dVSkE4ZTVGRkNQZ0lFeUV2Z3ZjU0VJbzIrYysvTTdLNktiWDd2L1Q3L3JOblptVHV6OS9UL3VlZk1JQmJkS0gzR05mRTVLQm1sb2lxMEtEcS9QTitmemdrY2J1WXh4d2dNSnd6cVJFWmc0Zjh1RGNhSTRUQ3pWb3RaaE5oRjhNR2lidGhEYlJaTFNncENsaXBMWmFRa0srUnhwNlNtcEpwTmNGZERtVjZ3NXlLYmxiVUlmcTh2VkpZYUtTLzFzcWxldGp4VUZxbElaV0ZiWGxwaXN6dHdQWVpQcTBWa1UyRXIrSDFoUFJiOFhJR0xkZm1HWC9lUkQ3WXNueG5KWkE0RjJIZmZaWHhXY3pwLzU1MTh1dG5xWTk1OWx3MVlROW83NzlTRytCeFA4SWRwUVk4bnlEOFQ5UHpnNVFkKzJQK3R5Y0FKK0JaOGhCV05acjFPT29sYmRIcXpVV1NsZGRJYWdUT1lVbkdMZERJVk1makwwVytaUDNPbmtSRTUwWUxIZFN6RElveWJtNDdiMnhkSDdRZ2gzTXRoakFNdFBORE85Q0tHOFRPdGpxZ1ZEZ0lmTU9wTFBONFpOU2NuSTVUc1RIYllMSERIcEtDZ0lid1FXU1AyKzBKaE5sUmVnODAyRnliVWh1b3dNSUo1MXNJVU02Nk1EQTh1WWl6MlBiaW1adXBVK09OT3AyV00xTm5UMCszTS84bElHMDUzK1c3eHVlaG1kQlNOTXEremIzS25VL3hJTjVxQlVBcUxkT2h6UlA0eHFIYjBLKzU2YmdnMW9UYTBPTHBnVmkyajFYbHRETXN3elNrR1BhczFhaGlFdFdpZEtWbGtzY0F4REF2eVRjSTZYUllsTVp0dGJXNUdxTG10dWEyMUJXNHlaOGEwYUVOMVpWbXBOeEQwVy8wQmI4Q3M4UkR4V29SY0xGTDV3WTVNSHhHdk43NUxQNERnQ25Vbk5TWndiM3kzRkZkNFJlNENvTzNGNk5PRXhFL21jWjVVWng3VEpQMmc3dDFCanY4NitoejUrTFJEUHRpSWVYWHZtRFFRbFg2TXNyM2VjTmg3bW15azUxSk03alJXaHozeHZkaEpYQ0Vma3Y0YTM1TzJuejVOK01laWs2Tjd1UXcrRTgxQzdhZ1QzUk4xOEN5alFSYU1OWXZicXEwY2o2dXdsczhLTVl5V0J5M0pCQzNKMDJNTlJwcE9BVFFDOHdqM0lWN0w4SjFKV0F1bXcycVpQc1N5WXE4T2kyS0FCZFVwZ1QzRWlwM251b3Bjd1BiQ1NMYWpNK3JzNkdoc1JLaWpzNk96c2IyeEhXWTMweDNNOGp1RFdRYU5DOFRod2phN2JGZXljb1ZEWWF2TjdzWldpeEdMVmtYZDRGaGM4VXJJYWJzcEZDN0FaUkdRQnJtYUVhd1dteDN1WkM0dmk0VGdIaVptbjdlN3c1ZWQ3Zk5sKzR5MTErMXVidTljZE4rRjNtRFF1Mk9CZk5pYXBuVnU2ZHd6YzNaSDE4L1hlSU4zcmMzTzhyZi9jMk5lZHQ0Q1B0UGpleWh0ZHI3ZjdmWS82M2RuYkhYOHkraDBiVnl5ZUY4emM4TG44ZmllU1Y5UVNVNSs0M2VuMnBvV0ptTjdpc3UxZHQ2aW5kR2YrenpTZ1JtMW1WbUdKUDNYSTkzenB2cnlqTWs2NmIrSWpIaFVBanArQytoNE12S2lZalFGZGFBVjBXNndaUjR6L0NCaU5ZS0dGUVlSaDVESW9iNGtMQnF3VmlOcSsvU1k1ekVJQXVPc0ZxVFJDTDFJRUxLRjFxbFRTMHA4UG9TbWRreHRuOU5ZTXFVa1dsM3BLL1lWNVdRNTBzMHA4Q1BHa0pHWXNjeE52MDloR0ZkYVlpY2FqQ203UWVGeHdBZ2ozS0RZOVRDaUFQdkhYMkZreHB6RzErNmFNMGY5enp4anowaExUeHUreVVZLzJmVWpKVlBEWWZVL2t6ZzBuSENDRzVxVGNHYlE0YkRaN2NNdjJ1QXp6Y2JXV3hLSGpyeVhPSFJQNGluaU53NEJUemNBVCt0UkkvcDcwL0ZpVU93MFBVYTRFak9vRWJQTUxMK1Y1ZGhDekhOOHMyUHlVeG80MVNsN3ppeFFhZ2FDeHlEY21lVVl0ZytjcXRpckJaWE9hdEZnanVON0JSQ0duMjkxeUQ5VmNzN3hDSWJUWFZWc2ptalJXUzVDc1dzU0pOMEpEaHFobWRPQnlEcC94QitvRG9SMHhIenNjWmNjOHZ1SUZHMTJYRjRCTGt2eGI0Sm9WMTJkcjVBSW5FaTB2Q0pFeFVxc2hvaTFBak9mM213bFZ0RzhvYUlqSnpzSEI3TXlrN0tPRWErMUxGQ3lZVDdaNlM5eUw5cjdVTi9SampYTFZzNDdzdXFkdW9LNVpSZDJTVDl5USt1U3c3dUpNU3dwTEdndGpIUVdTcWNXYjRESUZ2UmMwbjBKK2ZEMkhsbHljOWZxMjZac3Zicno0UHlSM1BPbVJlWVhiY1loSVBvejVuWG1MeEREa2xDNXpQNGtFcmk2R1JLNEVEREt6SkJvaFJlUkE2Z1g5c0NSUkhVd0pnbnBBaXpSN1hpRXFzSE1YNFFLMXU5MkJkZ0tvZkJ1N25TSlZKL2hkR2JnRjRtUWNMYjBTN2FYWDQwOHlITVM3amFIL3VCamNLOHcvTkpKK0x5dzgxR2JCV3RzdVlqNEdHSWhBdWk5bWU2Ukh3R0h3NVJGek9VVnJGR1g0dEtiREE5KzllVkRCcFBlbGFMVFgvTGVsVmYrWVlCZmJUTzcwaTNhZnVucTBWSHArbjZ0SmQxbHRnbXovNEhudnZvcW5uOTZOcG5IZVRDUHU1UjVhREdhVFgweG1VZE9mQjV1SjUySHpXeTFNSUpJQkV3TnRkeHNTbUhvSG9sQ2RtYnFINjY4OHIxTDlQSnNIdnJ5cXdlVjJmQzIwOUlEcjc0cVBmU1AyWUl5STd3WlFmakZXOVU1RVgrRTBYUDRLczRBdGxPRzVrZVRpekRpQ3NQKzlHUVdYRHNETVNJSEJKSktKSUF2QjRqRlpiVUFiRUM1UkM1VzJPTXdoL0Fna2N4bDlDd0hLTUlBZHkxREVYZWdBQUJFQmdVUXdYS0ZtNExJeTB6MWd5YUtpdTlwd0VHaWtUSTl2QXl4bU1QNWZBQWp1eWt0cUJOOG1kSlhMNlhudUROeTB2ZnZUOC9KY09la3Z5ajlaNlpQMEFYVFRIYU1BamcvaHhzcXlwRytHTkI1UGFsbVowZ28rMTI2SytpMkZwdytYV0IxQjEzcHZ5c1RRazV6cXNlckc4QnB2TTZmSmRQK0szUVY1K01Za0VOK05BZU1Ha0VRNHpCQUkzQU9lQzJ4Y29LT2VLWURSbnVRTytEM0IveWl4a0VnaE1sTGJjcnZOVkhqS3pONUtWQW85WnJJOUE5NGNCV3hHT2tWb3YzU0syUWZWM21DSERQeFdKQ09KZlBCVzZYM21iK0JWYVFnZDlRQmlnRmdEbEhsUnpIZEQ0VVlUUnJGTUNJTFAweXdTajBHdmYvQUxMNWpudDdJTE9jYzFoZHhLRFhabUN3NXMwdTRKUHhKcXBYU3lqQ2NqN2tLR1pBbjZreTBxVzV5dGcxKzM0RDBFV3BRTW1FS1BSd1A4eHdSeUd5Wkg1aXJ5SHpKSDUzdng0QS8vNGJ6NE1yMHFFMDFVT1JIcmZSdVNVSDVibU1nNDBNTkRZMk44SWZ6WEw0bnlFMmZrR2xITDB2SE9JSHZSeVpVZmtyUE1ES1FKUkFsaWR3NHAwV3gwcWlPYXVNK2FpVFVENWhRU2xpZHRvaFZCRWNBT3Z0dkVYYWtSL1Ric3lJc2N3ZDg4djF1dTBiNy9ZMHBGdklwbkpkaWtYSG4weEEvVW1oTTlxQzhhRGJCa2pKMEJsOE1VeUZFWmFOV2tqU2tlRkxjYVRZYVYyVjRUTTBUZnBLNmhmRlJrdm44aGI2KzV5Kzk5UG0rdmhjRzJ3YW1UeDlvazdmYzBGSHB5eWVla0w0NmVoVGJubmdDMjQ4ZTN2VDJ3WU52Yjl4SXRwc0lQejVFQ096eWFaaFJVVFRmQ0xBS2RBRTJMSU1CSmJBQWVEbkNpSjRZdjBFL3cvNUFoTmhjWUl3QVRhcWhWVkE3Qk0xbHZ5RWlYVTRWMFBDOXlaaHBOM3J3Z01WaWM2SFJLMVFCczB0K3BzdE9zL25NWHlTNU1vWlpLcU9uQUdSK0RYd3FST2MvNXNNY1MwUmtCQkVGRU95ekhNeU1xTlZtbUo4Y0k3T0kxSmdlTmZFSUpnd0Q3N0ZyOG5HZFVTTjhLMFFGZ1p3eXY1MmFHOEVpZ29pOUNTalJxMG9ad0o3ZkY0T0oxSTB3VHp6Y3Mvbzg2VGcrUVFJYWtEckg1MHJHVHl4dHVtakR4bDV5eUQ3N1YwdTRvWG0zYlZoei93YnAvbDBrY3IxSXFBNmw0R2VYNzJ4Y3RxRnlJemwyS0p4U1ZrTjk1T2hYN0g5VGZORVViU3pHQWk4QUdVd3pFZ0JRQ0J5UXc1Sk1oS0EyRnJnQ2FKZ1hlelZ5S0krckQyd2hkQWNDa1VqQW5xY2xvVnNtU3dWYWluOEhKMGcwaUlCWUNOaHk4a0cvSlZJSjhiMlVlZUdCNWUyenUxYjNQbm5waWxmYjNLYU16QlR6MUZ0YWQrelplK0ZzSXRxSy9nc3ZQSDhyQmNBRzQzWEh1YUdPRzFjdDNCa01IVnl6NGQ2bDA2dHRUb3NyeDFCY3RXM04ydk9Jdkh1V0x1Z05UeU5rYjdCbGFCZFR1emdFT2dnd0RRVlJGaXFQbG1aaEpPQm1FU05lZHBBYUxBaFpMUUQ1R2JZSFpPbG5nY1p3Q0VaRHBoWHhCbnhhalRNWFdVMHErckNXbGlRb1pnMHVpOG13Rkh0VDJabDNrbG5mZVJuMW0zUEo5ckRrODdsMCtGTmJTVWc2RHkvVWNFT3RJL3ZJWFAra0tpbnNlSTNNenozdWtRcjhqZXpUbjZheXVndEYwTXpvTkJGZ05TWnlZbm1CQmJ2aGVKYmJCWU5BZ0h3ZkRCZTdpWmg4QkhIUlBEaWJJV0tLb0JKL0tHQVArUUpVVFBLa1daRE01S0pTak4wblIybmlqMHU5N00yRWlnTERxZ3N1UHI1czNmTzdlbDVzODZRUUNVMDUwdFJ4Y1VQTnBqblR6eTlOOGVYNEdRdVRtYzNZdUx0b1VIaXVjczFqMjdZTnJZOVdXTjIyakZ4RFFmbVViYTF6K3FQK2dNN3R4Ly8wdTJWLzlScjRxeVR1U2NqNjgxQnR0RW9qVTRtQldrNm1pd1d6SWs0aWdTNFh1RmxYbmlzMzZJZkxIS0ZBUUtOSmwya1RJY3Nnd1hjTWRlWkFCUnFYRXJESEliaEszMHFmT0NOSEZtNThaUFdhcHdZMlBGN1pjZ2hQK1U0NnZIVkt3d1hOemYzMWRWdGF1U2REcFI0SE52N3JuZWx6bGordytmejdlMVoxWC9iYkIzSGtUZjNJdFJXOURUTTMxbGV1blQ1alhSV1YxMmRBQ3cveWNxQzVqd0V3WjRoUFNTSUFIbllCSXZkRElHQzdPYURHMXlMYmtTT2FMcDlDZ3hQT2RWTDA2RURwZm11WVYraExpQW5laEJ6U3kzN2hFcVNGMnJBamtNL2ptNldRN0N1WU80a28wbEorL0w5MnV5dk5xR2YvZkpEWXhMc1E4VmowRnVpV0JQYmdBQWhVZzZaSHAxZ0VRQWZFTVlNSU9JYnZFMm5rRU9USXdYR3E2ZWZsT1owSTVkWGtWVWRLbkxuT25JQVBicEVCVHNBKzNnbkkySHp5bklzWkp3L21yVi8yTEoyemJQUDZKN2R1ZlhMOTVxVnp1bnArdWE2K3Q3SnlaVzN0eXNySzN2clpteHNhTnMrV3Q5elFvaU5kSFlOWk9UZXRXSHZQOHVYM3JGMXhVMDdXWUVmWGtVV0g4K2RYbHM0dktwcGZXamsvWCtMTGUrdnJWMVJVcktpdjd5MG51dmI4NkpjY0N6UXJ1bWJDREFjRWN5QUNqZ0Y2ZVQ2bWEwcjRCM3JINmxvZ0VKWjFqV0EvaGhNRll2NFZlYmppek9rbDh3cFJMT201N3h5Z2NsaUgzWEdWazNWc050VTNib2hxbHZUR20zbzhYdWNPeXpvbTZ4dk1sbUlWOWw3QUpRNFM0emtWclFTSmo0YXNBRk1IWm9UWVkzUVlNNnlwRk1EUUdLK3VPZEM0dzR6OTVsYmdqUHJIYkk3RG1wSEx4MEFjbU1NVjB2c1FBTWtjM0NnbkdyYkxVWjJGdU02c2prOElndzl5TzIwV09nTit3Z3pNRTdDZk9va3JFekZnNGt5a1V4UHg0RTYwblhOeHFTaWQ0RUc5aGxoVU04RjBxSk11SE1JSTNPSE1wR0JUV1N6UVlnVzdoN0dzcHBoOXplUzFKV1dQOURCM1pDZlpBQW9QL3l2ZFprdG50VnhxYnByWmE1R2VsWjYxZU0xcHVUcThNeWt6UFQwekNlOGtPdlVyWE0zNTJMbFVGb0J1MVBYSXRTQUVrTVVpdWl6WlRialNwc2dqM1dxbThGU1lBRS9OWndhcnZvUjlkcTRhTXFUTkNSQVdxSHdZK05DbThzR2N6TVJBZDJjY2REdkRLdWdXNGtzbVdxd0dBY3hWQWRYRC83SlFiakIzalBUSTNHQzF6Q0NsV3Rxcm8vekFVL0ZVbVIvU1hzSUhhZlJiOW1YSWZjT1FNVjBjMVdWZ0JodkFCVExLRW00bzV1Y2c0aUorRjNGMzFOZ0NMY1R3dUY1d01YNE9IR0pnM0VBWWc0aHU5U1VPNjR4YXNpRHZ5U3JMaWhUbXcwK0dBbm5aMUM1bDM1T01hVllXS20vQTljd2tjR1BjMHUrN3grYk4yTC9Cd05jMXNBWW0yVFNqZlZuKzZxVzdGeE1ubW1TNCtXbFRlWGxkSGZ4eHA5dXVXYlp3ZTFmKzlVVkZMMXZTUktlM3VyRzRhVW13a3pqVjNWYUhwdXZILzNMNSt1bnFBckVTQnBXTXJ1VU9jdVZvRGxxTXVxS0xNK3lNanRGaFZrZmdGdUlobEEvcXNRWnhqSWJyUTB3UzFyR01yaytMSVdWREFvc0Flb2tpMzBrQkdCSjVzYU9wQ2FHbXhVMkw1cmJERFdlSFMwTEJnbEFnWk5DNDQwdGlvWENDSHlxeEsyRWRMTXhxc1ZFY1JtTzc0cC9LNldsMU9ZQmNaQTZVVXNkc2s1MVh5TS9tLzJYWHpNRjVVNWJaSThzYmlqc0tGaDVjc0RESEk2UW1wMXJzWEl1WTVXOWEyUFBJd0JVZjdWenkwUFlaKzhvMHJOUEFwNVhmM0hINzU5dHZ4N1lIYXhkVUJkekZpeUpaQWE3OHdIZDNiRDI1Y21yRHRHbmxxMmQyL1diL3FnYTlLS1licFg5enBPY1VIaHJZODl6YUd5WHA5c0ZuMWxoTVRMNVo1OUNsT2ZmKzg3NFhjYzJqMHRMT0E3TUtDN3F1bWxwUUttTUdTSlc0RnlITzVxTmlWQmt0UTFyd08xcDJMUkpGVGJjT2F6UytGb0ZqV0xMMEFtQUMrNGtUS2lxRTBia0V5NWtDRWIrZU1NMW14K05RWE5ncmpqc2lSMXV3UnBIMXNzd3ZpcE53YngwRmRiZVI3ZjY1a21QZUFQMStnbXdyY2ROVE5CUFpGSHdLWC9Fa1JGL2ZjRWcxMGIvL1BaYU9IQ0xiSzBiK3pMamt0ZTUyb0djbTBPTUdWUzVFZGRGcUFZdHlaQkl4SjRJckFVOEM2STVnQTBGSmMrVk1xVEEvSnlzYzlFSytoSnplUUsxV05ZRllFRmJwTUtsMHNDb2NoNlFmZHZ4ZTV2dTc1ODJJcnQreTVJRkxSbDRqazcva0VrckM2YzkrZThHRlc3ZjlGbXUzNy90UkFoVGFma052ODdhZzcrWk5mVWZteHFtUWhKN0ZTNWNQYjFqZis1YnNneTRFRERRRFltd0ptaGFORm1DQWN6UXFJSlloRUlmdkZRRm15RWxTZkIvU2VXTFkyUnhCckNXb09CVDJoNEpCRFlIY2tPUEppeEpVZFZYVU1GWjFsWVMxUkY1NjUxSjh4SExyZGkwNy83NWxpKzg4ZitXampTYklrYzJlWlI5c3ZmWEwzWHYrZXZQeWd5VytiRzdJN1pkT0VkT2R2bmxhL3p2WFh2dDJmM1dGTWV5MnUyMVRwcEpNOW5Gc3Z5VmFVNjNpVkNLanJTQ2pOT0I4YmpSTGxvbEFaY0tOa1luZjYwaUhVVFp2b0Z5a1VFRk9xeWVUaEl3UWN1RW1mOSs3OSsvSHBHekMrYzJiS2YvZisvMlRGeDN2NlRsK0VhalJkZEkvVHAyUy9ubGRuTzAvZnRiMzVxRkRiNjZYZVU3bTFneHpxMEVIbTQ3cndOdVdJNEFtRE5lZmhQVmFEZGIzZzd2UjZnVXRXQWlDSkVIVEo4OGVrY21UWlhnMTlYWkVLOG1GSWljTTBpdTFlczNnVDd5ME0ycURuUnBVWFFGYUZmU2JVb09RTlpVWjVCcVZ5VElKL1NWeEordzFLZW13SXV6WUVTNEhZT3p3SHNLUU5XdklsbDBQQjBDNkkxOWl4cE9WNVNGL2tzVGsrckx4UXlEUDl4SU56Qk9VaUhpZmxLN3BJcC9TaTJUYkphMzdERVFxODJ3aDhLd2NYU3J6ckJBc0VVSlBQOGlhNE4rMW9MV2N3SExna0RIV2RldXhUdWRySVZtaTJBMSt4aS9LNjk2a1RFblh2WC9TSlJDMmdFbmxLRkpVQUk0b2xiSXBLYzRpbWZEU2NhendtOGI1cEJnSHVTcUZGMUtNRlY5UW9DQ1I3V1UwKzJTdklEbUE5QjJoL1NWcFlBd25kb3gxU0xJdXJWRHFsclZvVG5SV0pjWWlRWFlRc0RnQ2FEaDFiVi9EMEJVQnlEcGord3lqTHUvRDRWcFVFd29HSWo0d1l4MzF0Wk9hY1VWWlhCbG9XbTJhMUtBNWF0QlRkaTNhZEg5UDEzMGJIOTd4TDJvaEQ1SnRabUR1dTl0dS9YcnYvcStQTEwraFdESHJQeEw2YXBlWHlXWmQ5ZWNZWGpwZGJDa3NQb3J0ajUvQ2FiZlVWQlJUNDVaMVlRZm93alRpczVBZWNWalByVTNTYVNDRWFMdU5Ca2FyOWJXSVBFdldVc0hrNmNvT1hEY05UYW1ycWE2cUxDOHBWT0tLTjVBY0w4cE9FSnYzaklKVXFmZkdSZHNOdERVMjB0RHlNdGt1bFl4TDQ5L2tNN2lhbnNIL3ZWVCtKaWZld3h0VWN2RVJhZDFZRVZNbVhJTXZvT0xHNkZXZ213TzZQU2c3R3VJQUtQTGRaQW5MMXdLVVlvSmFGVW85eUVWWFFaVDFZcnBVN0MwWnV6S243ckJ2dzF4R0ViWlFUWnhLWjJZWlJSUzYzalIraGpIRncrZ0MwTHZMWVM1QnNqcGpKMnVEelNScUFISWVUSndaSWtrcEtYK1FvQTZEL2Y1QTJCK2ZHRkVocGI1Z1VzeUlBcC9ZOUxnK21NaHJiN3pVUHhSTklWbzEvK0RlQzZYNzZld2VsV2MzVXZMd294MHpVek94aTlyS2QwMWJCNWpqY2ZzZ3VuSTN6SE1lc1k4NW1JT1pNR1Q5REFPT3cxeWZYdEVhUTVLaU5Rekp5QVNzTENuQlpSMHRUYk5uVFlzQ1F3TlprY3JpZ0RHdU1sakdhK1MvTFZieklqWGtBaHlteUMwWm4xT0hZb2lGVWxvbkxkT2s3RzMxRkRvNWIwcTQxRWtJbmJ0NlZyclBIcktuelM3SWFYVzc2VktWdERnaDlLeVExZXFVckdUVGxmV2M4L0NxckZWTnVnV3VSdkwxUU1taXV2bGVYOER0Y2tudlRLSms4L0NEWTNsRzRsTUFsWUNiaGJRRU1QNGdvSHNrZEVNT0lzZ1JOTDd1QnVOOEVEejhwb0FDQVJUamlQdkZDZFF6SDhCVS94dC9MUzk4eUJIalRrb1prNk1xSFo1TkJYckJSSjhIWG9CN0NPWVhKZlpmNjdHekhLTG9pMVNGQmpXWXlGT3ZPNE1YaUtMNnFuSWl6QUN4a0tTNE1GUEhTVW92cjkyRTllTlJaNnhCZ3piandDZnR3aWpKS0kvYit5YmJHNGJjUUNEWDhLWjFVL3hvZVhveCtYZzd6U244OFNOOTBkc1RyS3QwNUdWQ01sTTkvT1pZRWFXWVJtNW5lcjJFOXBtSzNaV2gzbE81QmxLc1VESTJCK2d1a1JENGQxbEVESU43aVdNQTAzTkVQUlBQVWxUZ2I1R05zek5xb3NXelVvSURJZ0YvUUFrRE1STU5uekd3VVViZ1V0TVlSYTRLaHNvOEk5OXoxOFRSOTdRV3N2MlR6YUhCNzNNRGlibzZySE5rVnJDM0Q3ODZsbXFqY2ZnNDh5a1ZPNE1XQTkxYi96L1VTVmptNjcxN3Y3NzFWcnJkZUY4WEJDeDV5dzNkSW4zNStPUFNsMGRKQUNMbzhyQWNuL3JmdnZiYWQvcFZqTGtZWk9GRk9hZ3NXZ0xRQzJFQnJSVko0UjN3LzBUUG5KTVY4TUZvRC9IT0lhMWFYakRpM0RQN2lWZ0N3Rlk4dTNMbHMvdisrZzExMUg5SXNCai9YOTg5Y1BEUVZlOXlkeTEvWU11V1h5NlQzaHZMeDVHYmRtMjVnSUNleGRJM2xJZFZhRFlhaXFhV1lDVGFBQklXWXNpK21uV1l3VTFOeHdPZ1NtRmlTU3dtV1M1QkVleHFrcVFKdlZxNjVnN1FTQzIxT1pxT2gyQjRFTEFtd2lKa3dHZStUQU02bUlONGxyOTg0bURFOGd6Yk4yWndaMmZVWGwyTlVQWHM2c2FwVVpod1pYRXczKzhQNmFtRFVRUWFGdVhpcnBKZjJCSnlZK3ArNDFYZXM0cmVtWFpwUjF0bVZlNk1jRlpMcmxhWDdFa3kyYXJYbG1iVUJEV1JHVm5uYnhNMVhuK0c5dEZiSG9heG0rN3Q2cnAzazd6bGhtNlEvbm5paEhUNkJtWi9wa2Fibk9FUjBpd3VXMFpLYmtBak1ucGRNVnZnU3pmcTM2akcvdCtld0VrM0hGNy82cFZYdnRyWFI3YnJZemtLaVUyMWFEcHFpTmFDazlLQUg5UEFHUTNUcDZWQVZFZHJCRHpMcUIxMU5EdWVQcldoRHE2cUpucVVIYW5YeHlzNnREdkpsaGlPUW1vOE9xdVNaY282SnB4Y2R2alN5cUFueitGTVZzSlBZKzI4c0MzVEhjeHd6Nis1Z2pwcWFXTkMzdm5EVjY5ajR4VTcvcDI3YS82UjFmMjN1V3pGMlIwMWRVNGFkQnFhOHhxbnpnN2s1RXI3eG1ua0Y2LzA5TW0rL0RhdzYyemFkOWNSYloyRnNlREZERS9pTXhaNmdZMVU0OEJ4eGZaSlZZRUY3NVhkZ2tpSm5PNVN4MDU3N2txSzhuTkRBWS9MSDlUU1ZUT2xxNHNHWTlLZElnZnIrUEtMVmFtZ1J4SnJYeks3MUFZdkJkV3lmd0JVR3pJV1BiUnA0MEJPMkwrOGJlSHE0bFZiVmp4MythcjdHK1NPcnR6azdKTjdCNjlzcUEwdGFaMjdxYkM5YytVald4YmZYUzFqM00vOTdveXU3alVMc3lzdFpudXl5VzdKUHJSejNiSEZzMmUyRW8rUDgvenVuSzA3Tm5ZMXRHV1lyQ2twVG10Zys2cTFSenFtVjlmSitTeEdsNEN1ekFWZHlVYVJhTEdBbFE0ZXNsNmlGcExpUHAwRzVXd1U5cHRvMnFKVWttTGRBcE1nM1RnYnZGd1p6VktrMC85SkhjMUJzdjFQNmJRY3Fka2xORDNaVHlkZGxnZ01wZGZwc1FFMVJxdHhLcC8yTjlEbEhiWWJoRWdMSnFTZkxBWUs4MUV1b01JSS9NVktYaW9zTEpzQWwrUjFzYkd4cHY2RFYxLzlvRjRPS0JRVzdUbHdZTS9teEFBenN2SDNiNzMxZSthZ090MlJQVWN2di93b3MwdkIxVHFZSzFtZkNwTzV1a21OdjVsWFpneHBPWjJ4T3Rrd0N2cm9YQk9namdJVThMaTVhdVBRN2g2WVM0dDAxRkNhbDF1YUpOM2FUT2QySWRsZWcwdHcyU3I2dlZVSmhpbCt0OGZIZnFQT2RmaHFkcXM4ejlGdllaN3YwdnBpNytPNUFRT0xCUkw4MCtYZ3o4SjhPUkxmSWY5cWdjUXUyTUtvd2Q4TmtZblVUd2ZIalZJR3lMRS9na29DUkF4all6L3RiNklOeHFUTGFSeUZEcXgwSk1jSUhTSXc1eW8rTzJ1dVplZ3A2N3h3TnJlUFloNU04ZXJCVlU4YnF6UDl3bFByZG93Si95a0IxeFJteHNoVFU5eitCTG8vWnBvTExaYVJCMW12alB3d0tvRzUzMEx6dm1pMHJqbzdUZVNJcUhSYUVZalNkQ2ZwR1hrcFVZWjgvTmpFcjZvaUFvS2ovdzF4MEtjZEQrN1k4UWUwZUFMUlk1SytLZExyZUVsMUhPVnNHSlYrbkVlLzBxN2NlcnhNZW5WR25BV2RILzJ4bG40clVtQjZxK1NKNVg4YnBCZ2d4My9HeDJQZy9DVmNHOHU3YW9FSDF3TVBTbEJGTkFJc1lBa0xSQ0NhNUZ3ZzEwblN3UkpVcEpLZUlObUowZUFzbEJLRU8xMjYreFBxRXU2bDdjYlN2VE5sdGFWOWVqOE1UMGtrYStUMzBxMHhVbFl4aFRGUzF1S2pjUngvSDlEaVYzUElTUm8wMUJ3eTNxQ2g1SkRXTXI5VnpTRkZQQ0hUaUZWYlpZL0dqcmgwSTMyTVJlbklZSHd1STNOSTBpbEYxeitSR2FjYmg5dXhnZVliRDVPWjJxenNBOTlUaDFhbjlCdk5rVTZ5YS9pbHlFNXliNUlSa2Y1dlR1N3Y1K0w5L1REV2pteUJzZ2dwQVhNeC9wcGliQ1dwT0R1YjZBZE4yekJWR21rSXozcUc5Rmg3Z29JM1NGdXVmN2lJOGdpdmdkL2RRMzgzS3hva3Y4Y0F0Rm9iYjgyS3RWRFprUldTTUtYeWJKbzAxVjhkLzlsWjBwRDg4L3hTVC9EN2orWGY1SzhrVzFrMlgrQnYyVThoTHJ0UTFpUENxdWxSbHhFU0NFanlnV3pFN0NOVnN3dGhuQXM1dytrY2hOcEhCTUF3a0FiUU9wVWc1MDFLMTZMU1o4SHNjZXR3UkhEYXpQWlVsL0MzdndtdVZMdlo1aFJ3Uk9kMmNrUG0xSkZIZEhxVFF4UU5TZmhQVW1hU1FSUWRKa2pqMmxMTk1KL1JUNlVkM0JlakhES2dURG9mNjNnV0JBT01NZzl1YkYzdUk3MCs2Y2VjSk5oeTd3NW41T1Jra0QvSzJ5ck95T2J5KzVFSnBkTjdHcEhhM3BWbVVXK0dsTHBqTUZaeFkzUFRiR2xHczNTVnplMzFwWnJ4VW01amFyb2pYZmVCSWNNVnpqYU15dXZQKzBuOFkwK2dBbFNOUG0wNjdnSW5uZXpFR3JhaUhOQmRDc3lhYlhhTU9TTENFYVVMT0J2eEhPa1hHVVFzb0dMRWF2b1E2ZDhsaURDM1JTUjA5ekl5RkhUSWR5NDk5d1ZBcnAvdXFrMFpqbWp4MmE1Q3NZc0E4S3ZYRUZoZVdJaFFZWFZoVlZrcDBKYnZEd1FEa1loZVhmcFBoSjJ4bmdKZ0dpM3FDYkZ1TUtYNzEwYVdGQWtRRHowOTFVL1VNVHBsbVhIdWMrZXQvdG5pVDA3ZWZzT0dnYVk3WjV1TVhwcytPUCtGM3VmM3JlNTY1WTdwdDdheEozNXhqOVRmUnR6SWxJYkcxaG1YZGQxMmMrbUMzcTZjb0xZb0xjV2ZtbGNvY1cwTFozZmNzOEZtbDJVUkJGbTA4Sm5nT3NyUUo2ZFNJRFVSMWF6Wmo5UmNMZEJDT3FCcGFwUGJJdEQwVWcyZ2NqTmcvcG1IeXM1V3VRcXBGNUVHN1Z3WWp6aGdkTjlQdUNTYVBkbG9GQnNNVVYwZDJ3bWlzSVZDQ0lYS1FwR0NQT0lWd2ZwRDRPRGxGdEV4SFVPS1JNWW03ZU5iYlBBMDE2VlA3M2hwOCthWGRxeTR0OEhsdTUydVBkRlYvR2R3K29HMnRnT2RuWVBUcGcxMjhwbUFBSXZ2MmZiQjRjTWZiRnM4dDEzMjdGd0s5ZnRTKzVGMTY0NjBMeml5Y3VXUkJjUXVkd1B2WFdBSFo2MHY1U2JVbDNMLzEvV2xjY0Q5WDNRNU9ycTdzK2ZJd281RFBVc2ZuR1UxdTlLVE05dmY3Ny91ZzRzditlQ2F6aHNqdm16MmhMb1FYYmM4c3ZDV250NmpDNnZLVTdMVDdYNTc3ZlJkSDE1MTFZZTdwdFRXRWpUT1VKb094ZlRKbWN5Z00rb1RlUktGSlJJZmE3U1Q2VlBpMEc1cWVVS2l1U2JxRTh0emEzL0NKWW8ralJ1TllvTkJuK0tXUFVHZmZLRmd4Sy9xVTZ5TlAxU0h4OVNzejZoUDdHY3Uya2tIZXRSdzd3cFpzWjYrbEs1WWZDKzVxQ1oxVXEwaSt2VGpBekpDYUorN1dOYXJlL0FCV1o5a1RaSzFpdkQrSVBCK0d1aFRKa0J4eUpuVjFVbkV3MGtlMGI1QXJwZXN3T1MyMEo0RlJKL044a0pVODRhOW9ZQWZMdlNFL1Q1SWlqSkl6bXdua2VLTUttVEVvcGVRZ3Q3Y3FBSGtrQ2ZlZGVQU1I2ZWJqSDZiTnEvbDM5YmYvTzdtUy81d1lQdlAwNW1WMXB2M3NDZTIvWGEvejNuajBjS3d0c3hxeXJLRmk3YStmOU4xSHc3Y3NIUFRCUU5LRHl1M2hBK2lVblRSWTREUnRHcWJjYmI2UUlZR015SnA3MlFod0dOdHJ3NXJ0UUVRS2RFVEpELzJFUTJyWStFazNGS0wrK0lYSlk2a2oyekFMNVVvRFpGK201N0FYclVIUGd6KzJJWGprT1FNSzN2VWdPNjlySWcxQnZTRzNSdC9nNWRRdUhLdi9FbWFXMTIrbCtuaTVzdEQ5L0hCVW5PUlBybUtMLzZQalZSNEw2bXdqNkg0ZGZzOVE3SS8zaTJ0NFE2QkRBdFJBOVpGOVVFR0NFaWp5L0t5RWVVaVVGbWU1UVoxR3RKbzNLc1ZHTm9zSllycXN5bEtiMkUrdFlzQXJhQW1YcUlHTWZuNmJuUzJxNGxWUmRTcmtZaDRWdVQ3em55WGhHc2hnSTYvTExhR1JiVnY0alhFek94RlJRZ1ZOUlRWVjViVFZ1T0FQUkFva3lPb1hWbE9WWExkU1ZwejY5U25hQ1pwWExzaDdyWlhQNysvNTZVRllZMDVyTmUzUHRCMjFkVTdYcEF0c0MzQjhOZ1RNZTg5L05aRjl5L3hlb3pobExRS3pwbTV0LysxV3pmOTd1cXJmN2ZwY05zMVhWM1h0TTI1cHFmbm1qbEVoOEY5Y1B2Qjk5V2dEVVNIT1ZXSEEwaWowWGJMR3F1MkgrYU9YMzkzUkgxRWJUVklTN0hHNUlOa3phMUJWZkpDZENRUTFDczFWNlZUZEVMaUVwR2ZQanJqK2pUdWRVMjVmMlhYNVkxejQ0blowcm50Q3c0dFhoby9NSmZ1bjZUUnpkaTd0dTN3U3NrWlMySCt2WFBkaWdmV1M1K29CK1JvaDBaSHFVM1A1dWVsK05CYWhGSVl0SWFEeWNQeFo2VTE3SDU2ZkRWOTBuUU5lcEhpNm1rSy94clF0cWkyTGkvWnlHRlI1V0VRMUZQb0JxOHNCd1JOTi9BMDJLTFhjUXhwVStzbXo3L1FxcitmdENOcEJMN3ZMS1BrMm5VRHFxK3RqaEFIQUlsOWhGUTdBbVBUWGRGNjVrVjlxMm5pa2tZcHR6N0dzY1lmVDgyT045TnMya3UyNzROWDJUa3JuaGpXU08vajl1cFlaei9PdWVPcXNUejBCSWUvd08yeC9IQkVrdk1lOUFqd3FRSDQ1RUN6Wk9iWXdaTnozZVJabjBBTEV3dDRCRFZaNFNBcDViTnJFNC9MandNNVVEcWhYWDRjeUhyR0tpaHpwd3ZUQkhiNEcvblpHT2xyK3JrdU1UakZ4RTd5a1dHWTMrZmd3OXJSS2VwRFRqVk9aY0JOTkR2b2pnYXJXTjZqSVE5TGFIdHBRU3JZWWtnU2VZNWhVTGRBbG5UbE5YVGlnWExvTUYwdmFVTEliWkd2NlVhVFh4RU5rNFZnZFN5MXU4bEhnck5KZzhtMm83YW0yVE9uTjlRU2d3cVMvMFpWRVNnc0hHYy9reDJiVEQxYzhvUG85bkxGS0xuWGdHTTMrbHo1SllYdGhmUVJwT3VWTHhHcUpaOVNLNk1tQ0tOeUw1NDVmWTI1ODVxYVpSWDFpbm93N1RObUxQclpTdW01U2I5Q0ZMbGEzbHU1dkh0cDUyTTFBNHRIUHBGMWhmaWtHMEFXTmVodXlzM0hLc2thUXJPRGZJb3hTVGhKaDdTbVY2ZGxpTDJNNnpoVHhCQWlZK1RBU3hJbkdDOWIxL2pSNE83aTQxRE1DTWNONjFSZFdYVkU5V1hVbGYxUGZKakNiN2JrSEY2TUF2YVRQdGZVUjlhd0o4N3V4RlIrWHJ6bWZEa3VYd2JZcWhINE9LSEdsbnV1R3R2Wm45aGx2djV3NTg0UHI3eVNibnNQdGJjZjZwVzM3SWtkSHgwNDhORU9lWHQ0d2RFVks0NHVrTGMwYjRPY3Z3WG1rNDJxMEdPblFscEc1RlNjRFlrT1F4NVYxWktVSVJnclNtWEgxNzdDc2VoZVNNY21SSE1GSlozeHNtamVtRUIranVFa3BPZmtJSlJUbFZOWlVnU1R6U0xTOXNtMUtwVXg0WE1KZG54dEtsMEJ6QS9FeS8xckV2RDB5b1NFRElDbmpKbWxiZU45SytEcHcyTXpNaGwvN2VEdWkvSFZRK0JYSWw4bmdWelo4ZXBDbUUzazY5bXgxcmpMeHZIMUhNTW44dFZIQXRta1VHazhjMzhTU0ZvVForMERhdXA3Qm56MFkyeFpHaDlRTXQvRFl6TVQ0b2ZJTTB0emdhOUY2TUtvRGxSRXlDT0xaUXBudlNpaFpxUFVzNEpqaWpZT0FMNkpkUjM2SEZkdUN4M2ZqY2FQN295Q0hjSlBGY3EreGFhVm44aU93M3NqamdQOFNaV09LV1UvbjU2bHRRYVREY1dWUzA1dHd4MFUxTk8xK1dPN3lmWU5uNnZvaWx1YTJCTlphU0Z6V3BYR3NmTjMyMTRjN3o1K3MvaXlScG4raytBL01vRCtabExMYTV5a2xwZWJVTXZMUFVzdHJ4azF6WnhlV3Z3L3FlWEZYOUp3dG1MZWIraUxHWEx2M3RXN0lUdkx1MmhHNzBWbDdaMWREMTl5L3QxMXNkY3pCSDV4OWRZZGVkbitycG5MZDVYUjF6VDAvcnhhWGlnZ2IyV1lPMjFHZldhV1FaOGs2bE5UWFJ1WExOay9wN1l1L2xxR25zWHpaL3J5alBwa1VXZXp5aTlucUk3a2svVURqTFlSUDhzTm9YeTY3ZzFrWTVZWkZPaXpiU3g5dGsxcDBFdFlCY2xIZVFGL21Ed0VyRmJ6NGc4QjJ5WTAySmJGQkUwV252RS9mUGhuVk5kWHQ2MllkbmlHMGVSTE0zaGJuNS8zcTJPdms4T3ZLMjE0dEM5SU90eS92anhmVjVDUm1ta3BibmprT0I2Z1dwK24xaUViWWU0WHM3ZENabm50WThrMHpNcnFuVUZXc2poUzRlTzRZQXMvYnIyRHVJdkF4Qkh5TWdRL1pzM0NOMlpZd21LRi9FUzBzZ3laUXBQYllobk94SGd5eVNyRkdEeXJkTXJIanJHL2lhMVJRTHhVRTRSZitsdzByRjVMdm56RzN1b0pqaFFSSnJpREEydk9oNUNLUDVVVmYrUXZOS0JpZDZ3K1JkNnZBYnc1VXgweCtMK3RJKzZFQ1RWSXp4Z3Jpb3ZLa3FYbjYrUHRYNFBZaEMyTDVMNUNscFplUnV6a1ZTSE1sN0dhNTFiWllOVTZJc3l6SEZWSEsvSkRSbHBJbkxSR0dDc2l5bjJ3L2dETU9UU3hRS2l1OWs5V0lxU3JST05LaEdtLzFvVkR1Y1ZKUjMrV1ZKb2JDbWxmTU5PWmg4aDIrL1gzaVNGUGcvSGV3NnZwUWJOS1RzRGw4ZUVUVXF2UDR3b2trUFVrL3AwMUkwdktabWJHYW1RellmNlhBMzFucVJNRy81ZDFRdjA1NjRUMmluRjF3dmZ3bEZKcWhiOGcyNTV2dm02THQ0YVY0Qm5TKzdQaVpjTG1kLzY5UXE2bnlkUkxyMGdQeGlJUUkwbXgvUVc0UXQzLy9QT1lIa3FycVI0V2tGNkJvSVUyaVFtS1dGVzdJdDFob0kzNVZMUUZLTTlIQVdwaUNSNGJHZnE4WEVVOVUzRU9uYXlYMWs3WjhiTk4vbEJaejVidUdkTEJoa1RGek1DR3prVEZISDV5MzVGWkhBNFdUbUg1OHIwSG1MZGlvbnlMS1luSjhBUk1OZ05vQ0tJYjVINXZ2MXdnN0k4LzUwM0xnOEV4ejNuTHoyOEc0a1BIbEJLRDUzNG1mT0s0VHZtaDhFbktqaE1mQ1IvN2tPYy9YTWtqdCtIUGxMS2pqWlFkVjBwVlN0bnhEY0lNbDJsaytRTTBaQkFPdUpPWnUyNGszLzVENGNFajBrbjJqL3hTU0NEV1JYWGxrT1FhNkxQZmNqN3NpRDN5VFJaQW1kVjBCWjNNbnJ6SUkrb2xyNVJBSEkvNjRzTkE1T1RCTXVKRk1kTVJ5MDJLQzNPek05MFphUUV4OW9RYllBY1B0Z21pbFVUWFpDeVhhbXhLVFRYU2dPVm53dVUza3NGK0lhYTc3QXNnNWZVRHhSekxiOXE5YXd2VzRMM1VoYjcyTWFObkxyK2U3QjY0RFBQTVI2L3pTMG1oc1hyN3FzYUxqMFYwd2VzMjJ2UURodlRkVzhuUlJ4LzFtN2M3azdac0lWOTJiYlhvNXJnTlEyVGhFRE1PNlJqekNOK1BES2pncDcyZklmNGlDR3RDaXd0em5VOE84bnkvMi8vOWc0VGp3ancxdnYxZE9zazVLTTlYUjNWNWNEOHJoZ0FkNHprTVljbExwK1FISjVINlJwNGNUdVU1cmQ3RWh3RmU2MFR5bTg1WXd2TmttZWZsa1VCMklGdVVWeVhHY1JqMlBUakc3RVFPazJJWk1MOUFOVDc4M1VjTWp5ODdRSFB0eTRISkg5TW5ncTdkQzZ6ZnNtdjNKcDdsaWdmV2swUDgwcUVoZzN1T3pySjFGMkhybGkxSnp1MW0vNk9Qa2k5YmQ2Y2JCdlMyamRjRmRaRmpGemV1Mmw0dFY0RXh1Z2sveUpVekg0UHVOOVA2NkJRRHNEY1RsSWxnT3A0ODd6Y0lKc1NBVGc2U1J5dFFKMkVBcVNnU0JoQ1NFWDE5U1JBRmZJR3dqM1o5SzNWaStqVEJHTWd5cG1PUEZBanhoNnVqMVkzaEJUTlRiRFpycGxoNFJXdjFxcW1WYzBJSkI1aVBjN0o4bWZOVFRXbE9vNzY1S3lmTDY0MTlJWG5PdDh5VmJFanBHYTJnRk9SeHBBTEZBdUFpZlllSTZWVHlXZ1oxVEpMVzBzbWVJN1ZkY21sVDA2WE56WFFibmhhTy9lZUdZb2RodXoveEZMQ0VHLzF4MU1mOUhuVFpoUXBSSytwQW0rajhWbm1BdysyWTAwN0ZnbzV0dG1vWlpnNTVDOHcrWURhL0QzRmFuWmJURFpJbkRwRVdvN1ZJeTRuYVRzQ2dyRTZEQlZFbjlDR3RWbHlCUkswNHQ2MnRxS2l0bzYyanFMV29aVTZqM3g5S1M4L3orNHJKMGcrbGl6aXRzZ2dneEhpYnBOeEZRVGFCTVMvb0lvSXlLeTlTVUo5N29ScFlvYnlMMEZUcVQyVVprOFVxVGN2SitkVTF4aVI3c3NIK285YVFiTG5UYW1HYWpjUHJSYTNkYWpTeU41SFBqUmFMcFN2RDdYWklMMXZTQlEydVMvWllYZmxkYi9BZk1TK2xsMFh3RzNORXB6WFpvdC9ObTAwanYwNTMxRnRTTlNPLzVad1dzMW5MRkhQT0VXZWEwNWwrRk81aU9lck5URTdWNDRGVXM4TWlYWTExMHJlZ2lNRGJMTzUxaGJmTDBDamxiTElISkQ4ZGN5SWpjMVZHclRWeDVtcmduRjdrOU9SUktwMU92em1CeVVqa3RHSWYwZ21DYmhIUzZZUWVKT2lFZGdYVzFwN2hGcUpldCt2Yzk0aE9UUlN2cUJFNXpTRFM2RVdOZnRkUHZna3AzUlVWRlMwcld0cEpFdGJzY2xuU2h2K3hwQ0drMFVzcWdzbzdUb1N4THptaGppcFpEb0EvV2Vvck1ySWxmMVlHdGhYbFRxMFB6SFNCQW1TWWluZlhiZG85ZGVZcjJKRGhubHo0bThjSmYvZ1dxM1ZuZm0ybS9jdXM2ZG5GVmFia2hUYXIxWFpKbXQ0YjJMb2l1cjdxbmlsV0s5Z1hzbEQ3dWdDY2JRczZIMjFDMzFFdHlDakFBZzhPZ0pzQ1NWY0tCTTVOV0d0Y0RZd1d3TU9uZ2pSYjFSZXJhTEQ2WmhXdFVXZlU2Z1pKaHdZdmlIdzhvSUlETVRLb3o0U04yaVJqWnpMV0diQStTYWNuQjR4SksxQ1NNV211SXpvLzlxWVdEWUFORFFFYjVMYTdKcjJ0NWlmZXRqTWFhQVhjdG5GRDYvbXQ1NjNzWGI2MGM5RzhqbGt6Nit0SWJBa0VTaU1CZTQ0WmtGek1nZEhuUzRVenZPaGw4dmU4RUVHakNlL3FNeWRrV1pQNEFyWTBGUy9kVkx1OG91Nkt5K3AyRktlS1JvZW96ZW5KYjVyYk5pY3ZZRFo3WnpiT21US3Rrc3ErNk9JYVZrY1ZKSzRveHZ3dXl5VGVZZlFQUEg5QlNWZjFxdExVZWZVcnR6Z2RPcHNoTmN6YTBpdEtLdklqYWE2aXN1S1N0RElyL0Z1YW9YVzVSdjdzTkk5Ukcra1ljUStUZUExcEdkYkpjWi9XYXdCdlpoTE1yTWNNZlJSZjBRQzE4QkNNTFlQbTAzZnFaQ0szUDJBUHFzV0Z5UmdjYjc1YTd6cjJxM25QdDNvTmFUNlRjY2JoYVN2YUpCa1dTd1FKRG04Ni9raERzU1V6TmFOQWwxKyt2cCtOeXJrYUkzSnR6Sy81ZVFCbHdsU0RsZmRuZFNhOGt5NEI2TWpoZGN6VDhzZXlzaW9xNEkrZjV3cnNDYmpvUnFsRnp3WjZIU2hNRjdOVkNoTkxLT2V1bjhTZTUzbGdYUDFraEg3TWp5ZlA4UlVqdU92L0EyQStoZng0Mm8yU1VXdmJNQlNGajl5MFl3OE5nMjB2ZlprZTAwR3RwRjJoTkt3UUFuMVpvYzFvQzN0TU0yRzdKSkVqeVErRi9xbjFSNHl4dC8yZ3dZNVVyVXZET21aajY3dlg5eHhkU3dMd0FsOGhjSDk5eHZmRUFwdmlRK0lNejBTVmVBMXZ4SmZFTGJ3V1B4T3ZZek5UaVRmd0tpc1N0N0dWM1ZFbFdzOFpmWXNPZ1FXMmhFcWNvUzArSlY3RGtWZ2tidUd0K0pGNG5UNHZFMitnazcxUDNNYTc3QlpER05TNGdVV0ZBaVU4SkhiUlJRLzdwSE5tTk1kUTFjUWF6YmZFV2VSWi9CYlk0Sm84aWVvQkt6MTFobm5IdUJOZFBXZHhPSVRpWFZBYktocGNJYWZLMEVsaHdkZ3dyem5PbDZJeGxVR3JWcnI0MDhNMlhUQTA5WTJ0aXRMTDNXNXZYNTZYV2c1Tll5dHQ1Wm10WnBwdmM2MG5YZzRhWHhyclpLZjB2bmFIU2hXVkw1dXJmR0ptYXRFWXI1dDVITVoxN1ZTeWlBN2JZWlluRndLUFpnTStNbGV3ZHNvZnNBeDEwVXpIaEQwMkc1YjNBSDJNY01GblFIcnExM1pXZmZieWJ1K2dQN29ZRGZyTHZlMDgrUDlycTFhOEhxL1BnOE5sVkRxcUREZENMbldNUzIxZFplWXlkb0gvNy9ydnJmNCtGL2Vud3ZFa0JJT2FPY2NwUXdOVGp1RWNGZngraW1PY1VNUmQ0NmE1aWExcTczSlhUWE5qQzNWNmZJSmYzMkt6S0hqYVpZclhUc0pnQUViUFgwWVJuQXpGTFc1UnNjVlpWMXdvdUFVbnFLVXhZQzhJTlFWanZOVm44N1dNcG9reDBYTnp2cHg4U0RoOGZ2RDJMY0ZmVEtkS3VIRGp3WXVNandiOEJHaWtpV1phYUtXTklDSENSR2luZ3lpZGRORk5ENzMwMGM4QU1RWVpZcGdSUmhsam5BbmlURExGTkFsbVVGQkpNc3NjOHl5d3lCSWF5Nnl3eWhycmJMREpGdHZza0dLWFBkSmsyT2VBUTQ0NDVvUlR6c2lTNDV3TExybmltaHZ5RkxqbGpudDBpaGk4QzBtNGhGdDRoRmZJSWF0YTBtc1ZvMmJxWmV2WlRwUnQ0eUg0MitvdmxwTWlkZE11L1R2S2o1WFhKMVBUZkk1VlJma1o2aGNOUnpWUUFBRUFBZi8vQUE5NDJtTmdaR0JnNEFGaUpTQm1ZbUFHd2tRR1JvWWtoaFFnTDVVaEhjaG1BY3N3QUFBbjFBSTFlTnBqWUdSZ1lPQmlDR0ZJWW1CMmNmTUpZUkJKTDByTlpsRElTU3pKWTlCaFlBSEtNdnovendCU2hjd1dZMkIyZGd4UllCRHo5ZmNCa2tIK3ZrQVNMc3VZVnBTWXpNQUJZb0V4QzFndkkxQ0VFV2dtRTlBK0JTREp4c0RIa016QXpDREVJQXF5SFVpTGc5V213TmxNRENJTVlnQzF0aE1aZU5wallHUmdZT0Jpc0dHd1kyQjJjZk1KWVJCSkwwck5acERMU1N6Slk5QmdZQUhLTXZ6L0R5U3dzWUFBQUZzYUMyc0FBQUFBQUFFQUFBQUExYVFuQ0FBQUFBRFpuSVBoQUFBQUFObjdTVWM9JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRUNvQUJJQUFBQUFkUFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFCQWpBQUFBQndBQUFBY2lUdjBIa2RFUlVZQUFEKzRBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFRRmdBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUEvNEFBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCeUFwSzJZMjFoY0FBQUF4Z0FBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxZQUFBQUQ0QUFBQnNKN0VSVm1ad1oyMEFBQVBJQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUDdBQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWRBQUFNSWtBQUZxNGlLNXhPR2hsWVdRQUFBR1VBQUFBTmdBQUFEWVhtaHBRYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWU5b2JYUjRBQUFDWEFBQUFMb0FBQURZS3VjWlBteHZZMkVBQUF1Z0FBQUEwZ0FBQU5KWWVrSk9iV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSEhBaEZ1WVcxbEFBQTlBQUFBQWNJQUFBTnYreDlxZ25CdmMzUUFBRDdFQUFBQTdBQUFBVWxrZmNUeWNISmxjQUFBQ3J3QUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW13aWJpUWhmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NUVC8ydjMvQlBJRnBBQUJBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K3QvN2RZUGpFQVJWQUFDd0NvR2djR0FBRUFBQUJvQUc0QUJRQXhBQUlBQWdBc0FGb0FqUUFBQUp3QkZRQUNBQUY0Mm1OZ1lUbkR0SWVCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobjRPQmtnQUZtQmlRUUdCcm95TENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCMGx3eXlBSGphSlk2aGl3SnhFSVcvQVpQWkpnZ0tna1VGbXlCY0Uvd3pWb05CT0pOZ0V4R0w4V0J0NXhvVVlTMmFCRkZrMndXRFdjd0hCeWJEMXA5UGJ4N3ZHOTdBREpNNDQ2TktuUDl0UDJ5cHNKQTdkakt6SWtkQzgrU0lnREY3WnV6b3MySE9nVFZUaTZ5bkhQTEZoYXlMcWRPbTlsWkRWMEphWW8yaytLSCtzaytUaW92ZG5Rd0ZKcGF6RXBHN1dvcFAwZ3p3R0xFU3kySkFsVy8zRUx2a05Sdm9OMCszQ3RxdXY3WloyaCsvRExtNXV4UVRLSytlTjhrOU1RQUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VURUE2bXFHT1ljUC8vMENXQWtNc2lQWC84ZjlIL3pkQ2RZRUJJeHNEbk1zSTBzUEVnQXFBa3N3c3JHenNISnhjM0R5OGZQd0Nna0xDSXFKaTRoS1NVdEl5c25MeUNvcEt5aXFxYXVvYW1scmFPcnA2K2dhR1JzWW1wbWJtRnBaVzFqYTJkZ3oyRG81T3ppNnVidTRlbmw3ZVByNSsvZ0dCUWNFaG9XSGhFWkZSMFRHeGNmRUpEQVJCSWdOTkFRQVZUUitZQUFCNDJxMVhhMXNieHhXZTFRMk1BUU9Tc0p0MTNWSEdvaTQ3a2tuck9NUldITExMb2poS1VvRnh1K3MwN1M0Uzd2MlM5RWF2NmYyaS9KbXpvbjNxZk10UHkzdG1WZ280NEQ1OW52SkI1NTJaZCtaYzU4eENRa3NTRDZNd2xyTDNSQ3p1OXFqeTRGRkV0MXk2RVNlUDVlaGhSSVZtK3RHc21CV0RnVHB3R3cwU01ZbEFiWStGSTRMRWI1R2pTU2FQVzFUUXFxRWFMU3BxT1R3dTF1ckNENmdheUNUeHMwSXQ4TE5tTWFCQ3NIOGthVjRCQk9tUVN2MmpjYUZRd0RIVU9MemE0Tm54WXQzeHIwcEE1WStyVGhWcmlrUS9Pb3pIcTA3QktDeHBLbnBVRHlMV1I2dEJrQk5jT1pUMGNaOUthNC9HTjV5RklCeUVWQW1qQmhXYjhkNDdFY2p1S0pMVTcyTnFDMnphWkxRWnh6S3piRmgwQTFQNVNOSUdyMjh3OCtOK0pCR05VU3Bwcmg4bG1KRzhOc2ZvTnFQYmladkVjZXdpV2pRZkRFanNSU1I2VEc1ZzdQYm9HcU5ydmZUSmtoZ3c0MGxaSE1UeE1JM0o4ZUk0OXlDV1EvaWovTGhGWlMxaFFhbVp3cWVab0IvUmpQSnBWdm5JQUxZa0xhcVljQ01TY3BqTkhQaVNGOWxkMTVyUHYxUk13Z0dWMXh0WURPUklqcUFyMnlnM0VhSGRLT203NlY0Y3FiZ1JTOXA2RUdITjViamtwclJvUnRPRndCdUxnazN6TEliS1Z5Z1g1YWRVT0hoTXpnQ0cwTXg2aXk1b3lkWXV3cTJTT0pCOEFtMGxNVk9TYldQdG5CNWZXQlJCNks4M3BvVnpVWjh1cEhsN2l1UEJoQUN1SnpJY3FaU1Rhb0l0WEU0SVNSZEdUcXhFYWxXNmJWVXNuTE9kcm1PWGNEOTE3ZVNtUlcwY09sNllGOFVRV2x6VmlOZFJ4SmQwVmlpRU5FeTNXN1NrUVpXU0xnVnY4QUVBeUJBdDhXZ1BveVdUcjJVY3RHU0NJaEdEQVRUVGNwRElVU0pwR1dGcjBZcnU3VWRaYWJnZFg2ZUZRM1hVb3FydTdVYTlCM2JTYldDK2F1WnJPaE1yd2NNb1cxa0p5RWw5V3ZiNHlxRzAvT3dTL3l6aGg1eFY1S0xZN0VjWmh3LysraU5rR0dxWDFoc0syeWJZdGV1OEJUZVpaMko0MG9YOVhjeWVUdFk1S2N5RXFDckVLeUJ4Yit3NGpzbFdYWXRNRk1MOWlGYVVMME5hUlBrdEtKUWNTckdHbVFRMi9PZktGVWNzaTZyd2ZaOGpVWU1oV010cXN4NTk2TG5QSTI2cmNMYnV0ZWl5emh5V1Z4QjRscC9UV1pIbGN6b3JzWFIxVm1aNVZXY1ZscC9YMlF6TGF6cWJaZmtGblYxZzZXazFTUVJWRW9SY3lUWTU3L0sxYVpFK3NiZzZYWHpQTHJaT0xLNU5GOSszaTFJTHV1U2Q1ekQ3K20vckt6dDYwcjhHL0pPdzYzbjR4MUxCUDViWDRSL0xKdnhqdVFiL1dINFIvckc4QWY5WWZnbitzVnlIZnl6YlduWk01ZDdVVUhzbGtlaCtUaEtZM09JMnRybDROelRkOU9nbUx1WUx1Qk5kZVU1YVZicXB1TU0vaytHeTkxK2U1RHBicklSY2V2VENlbFoyNm1HRTdzaGVmdVZFZU03ajNOTHlSV1A1aXpqTmNzTFA2c1Q5UGRNV25oZXIveEw4dDMxUGJXYTNuRHI3ZWh2eGdBTm4yNDliazI2MjZDWGR2dHhwMGVaL282TENCNkMvakJTSjFhWnN5eTczQm9UMi9talVWVjAwa3dndklOb3ZucVpOeDZuWEVPRTdhR0tyZEJtMEV2cHEwOUN5ZWVIVHhjQTdITFdWbEowUnpyeDdtaWJiOWp5cTREYmtiRWtKTjVldDNlaTRKTXZTUFM2dGxaK0xmVzY1YytqZXl1eFFPd2xWZ3FmdmJjSnR6ejVQcFNBWktpcmpkY1Z5S1VoZDRJUmIzdE43VXBpR2gwRHRJTWNLR25iNDZab0xqQmFjZDRZU1padHJCWmNZeVNpajRNcWZPUlVuc2hGTk5xS0kzN3lsZnFvTGhkQ1p4RUppdHJ5V3gwSjFFS1pYcGtzMFo5WjNWSmVWY2hidlRVUEl6dGhJazlpUDJyS0RsNTJ0enljbDI1V25naXBOak82Zi9JaXhTVHlyMnZOc0tTNzVWMDlZRWt6U2xmQ1h6dE11VDFLOGhmN1I1aWp1ME9VZzZydDRYR1VuYm1jYlRnMzM5clZUcTN0dS85U3FmK2JlWiswSU5OM3hucVZ3VzlOZGJ3VGJ1TWJnMUxsVUpMUk5HOWdSR3BlNVB0ZHM1Rk44cWZuV2RTNVFoZXZUeHMyejUrL29iQTZQem1UTC8xalMzZjlYRmJOUDNNYzZDcTNxUkwwMDR0ek9MaHJ3SFc4U2xkY3h1dXMxVkI2WDNKdHBDTzRqQkhWNzdmRlpnaHRlYmROdDNQSTN6cG52NFRpblZxV1hnTi9VOURMRVd4ekZFT0dXTzNpQko5RjZXM05CMDF1QVg5VmpJWFlBK2dBT2cxMDlkc3pNSG9DWmVjQ2NMc0ErY3hnOFpBNkRyekdId2RmMU1YcGhBQlFCT1FiRit0aXhjNCtBN053N3pITVlmWU41QnIzTFBJTyt5VHlEdnNVNlE0Q0VkVEpJV1NlREE5YkpZTUNjMXdHR3pHRnd5QndHajVuRDROdkdybTJnN3hpN0dIM1gyTVhvZThZdVJ0ODNkakg2Z2JHTDBRK05YWXgrWk94aTlHUEV1RE5ONEUvTWlMWUEzN1B3TmNEM09laG01R1AwVTd5MU9lZG5GakxuNTRiajVKeGZZUE1yMDFOL2FVWm14NUdGdk9OWEZqTDkxemduSi96R1FpYjgxa0ltL0E3Y2U5UHpmbTlHaHY2QmhVei9nNFZNL3lOMjVvUS9XY2lFUDF2SWhMK0ErK3IwdkwrYWthSC96VUttLzkxQ3B2OERPM1BDUHkxa3dzaENKbnlveHhmTkp5NVYzSEdwVUF6eDN4UGFZT3g3Tkh0SXhldjlvOGxqM2ZvRTlhQUQrZ0FBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZbmJZd2FFc3pNMmlCbU5zTldCUTRoTmladVNBOEV5WU5Oa2xXTUkvTGFRK1BBNGNEeXdFR1pnWnVJSi9YYVErREF4aUMrRHVCSklQTFJoWEdqc0NJRFE0ZEVTQitpc3RHRFJCL0J3Y0RSSURCSlZKNm96cElhQmRIQXdNamkwTkhjZ2hNQWdTMkd6RXBzWW13TXZOcDdXRDgzN3FCcFhjakU0UExadFlVTmdZWEZ3QjlsUzRIQUFCNDJtTmdJQUNNSUpCbEp3TUQ4eHdHaG44MUNCWWpEeU1QdzJPR3h5eUxHUmhZRldDeS8xK3hCak52K3YvcVh4cE1MNnNaNDJNZ3ZnZ0ExbEVWTGdBQUFBQUFpQUNJQUlnQWlBRGNBT29Ca0FKRUF1b0RuZ1BhQkRBRWhnVUlCVndGakFXOEJlSUdKZ1pxQnJ3SFBBZXlDQllJZ0Fqb0NVUUpzZ29ZQ2xvS29ncmlDekFMY0F2NERKd05FZzJVRGZvT1lnOHNEOGdRUkJEWUVTZ1JnaEl5RXFRVE5oUENGQVlVZkJWRUZlb1dlaGJXRnp3WG5CZ2NHTFFaS2htYUdkWWFFaHBhR29vYXVCdUVIRHdjcGgxV0hiUWVQQjdlSDNRZmdCK01JQ0FnZUNFY0lhNGg5aUtVSXpJajNDUmlKTUFsUUNXZ0poNG1zaWNnSjVRb0ppaGNLTzRwWkNtc0tvSXJraXljTE9ndEZDMWNBQUI0MnExOENYd2IxYlgzdmJOb3QyeHRsaGZKc21aR2ttVlo4aTdGdXhKbnRTMW50K1BFaWVQc0Rsa2dJYXdobUlha0pRbVVRS0VwQkdoSmdLOUFBNFNHa0JBZWExdmFRdmVtZlpRQzc5SFNYN3E5OXlqd0NzU1Q3OXc3TTFwc2gvQys3MEdzR2MzY0dkMnozSFArWjVsQkxMcEwvaVBYelZlaWZPUkFUYWcvdVNnZUZZczVIWWQ3ZU13eE9vYlRqWnIwakk2RmY3c01HQ09Hdzh4NkkyWVJZdnRodzZJaDJFTnpuYzZDQW9TY1RjNHBEWFVWUVY5WmdhUEFZYmZCWGZNYXpUcDNCQlc2V0tkTzlBdkJSa2REdk43UE92eHNQTmpZa0hDdzhCbXZyeXQwbCtKMkRGdVhVODg2NEZNbkNpRXoxb2xjek10NmhmTS9Gc2lHYll3eVkrWE1uUko3OWl3anVPekYvSU1QOHNWMmw4Q2NQY3RLcnFEeHdRZU5RYjdTRi9pME0rRHpCZmpuQTc1UC9meTFuMzc1WTFzZXA4UDM0RU9zM21vM20rU25jY3BrdGx2MXJMeEJYcWZqOG13T25KS2ZkaUFHdjNiaFk1YmpQa0lXVklKNnVwOTB6MXVTZENPRThCQ0hNWlpTUEpETURDT0dFWm5lMHFRTERnTDVHSTFrSHg5STJ2UHlFTW9yeVN0MjJ1RkdKa2xuSUN6UXM0UW9OaGh2d1V5aEZ4TVNnMjBZcUdmKzA4azA4U3RXOEUyTTAvMitmODZjQlF2Z2ovdW9xR1JzYTNNemM3Q2s2UHhpcjNCVzhOSVBtTTJGQytncDVnSE96MzFVSUNLVC9BRkNCU3d5WVNzaS96R283c0tmdVh1NFUyZ2g2a2RMay8xenB6TkdVNkNFWVJtbXg1YXZaN0dPWXhnV3hHakJKbE5GeW1wZ0VESU9GZVNaV2FNeFFDa01zNzJMRmlHMHFIOVJmOTlpdU0yQ1ZQZnNXZE9TYlMzK1lFQjBpVUYvMEc3d1JWQVpkam10T0lMMTlYWHBYU3NHcWhvYk9yQ1l0U3ZFY0dORE8yN0JpYXhkVmR6NXVENXJGMGJvdWUwbGVYa2xSWWZiYml5aU82ZVNYS1FzT2djbmZxL3RyRkZPUE5CNms3SnpwazA1MGZpMnRyTktYdDc2K3piMmNYdE5kWFdON1p5eStiakFWbDZpWTMrbGJXM2txUDJjc3ZtcmN2QkgybGFPbnpzSG1uMzB3bTR1eHBlakdTaUZGcUZyays2VWsyYzVqQmIyVEhGeFBGNlVxQWh5RE0rQ3FwU0RxcFRwUUI4d2ovQUk0bUdoc0R3emdsaFdQMnpBZXIzRWdzWklzSWRZL2NERWNXUUlPd3puMlBrRFNWaEw4SXZUUFlFS0VmNk1CaStvanhjWHVwVzFvdWhPS0JoeUZib1Z4dXRkcWpiQnNZeGUxYm5oaWhnT0JRbkhFK1JhUnVkeWtvT29zWUZjem53OVdGdFYyNUdNUjJvYm5ja1YxNlhtTGUxN2VFY3drUWcyMURZbmsvSHEycmJDbHZWVFJ5TDdsajJ3TnBpNHBWWnlTVGhjNlFuejVSN3hCWHVwaWFqa0x3V3ZhN3IzRG11NS82cmhaVi9wNWI0cmVqemk2N1l5QXpuNWpyL00wKzM5bHFtc3FPZG8zK2hNNW9qb2tYc3J2T1VPTTMvYjJHOW4rRjBXM1RlQVZqNnRzL2xJUk5Xb0EzV2pUY21SUXN6eDVkaGdaSHBnWmZLWTRVY1JhOUFaV04wbzRoRFNjMmpFZ3ZWNTJHalFHMGZNbU9meHNBbFdhVVVLR1F5NllhVFRoWFc5eVdSTmpTUWhsT3hPZHMyY1h0TlIwejRsTGxWTHNjb0tUNG05QUg3T0dyU1MxYW53VVZQUGVvNllKR0tNTU9FbTRXQUNjOEM4d3ZxNmVHTkRVQncvM29vejUvQnR1N3E2dEgvTXR4MVdzYmlxOFB5ZGJwdFZMSXE2MmMxanMrcnJKUW4rbU95QmtucVFPOVdWZFhTanV5VHFjUlNlL3hlWHU2U20xT1ptcDdVcHc2UjZ1U0I3NEhQYVlWai9sd0V2cndkZWRxSWVkRERwc21DRWU5cGNZS0M2Z3d6SE5tQ2U0MVRUVmdGYXlJQlJINFdyV0k1aFJ4REcrbUVqcUdKRnlvQTVqaC9XQVZ0RkhqUzM3bEpEaHhDTXBMc2E3OEVRSXRRMUcrWXhUWXlMd1dZcFpDS2FERHFidG41QlVTQmM5ZUY0Z2hpRnRCM1I2ZDBab3lKVUV5a1FUc2NUVkplcEhnTzdFeUhtMzQ4VnVwcVQ3YkhaczZiTW5OSndvdFNwTDNLOXBWaUZaYVZseTFMSzdtTVY1Vk52ZW1Iay9yNmxTeGNQUHI3akZmKzBSRy9ISzl5cGxSYXY2M3VDMXlPdWsyYTMxQ3lQUHorMXpWbFlVRlZaV1dWTEpWZll5RTZCdi9PNi9udlhETjNaZXMzTzFZZVhuQi9yRERkTmIvc3hjQU8vd0R6QU9zQlhXRkhiQ1NNd0dhdGN0VkNId1JDSGdZQnpkb1o0Q2R4UERxQmgyRU93d2swd3hvb3NFa3VVVDg5U1d4a2l6ckFGc3c3OUhMNHlGcXZrNStES1Q3bVA2dVJ5dnlqNjhidWNJVWp1akxIOENQc0F2eDc1MERUbEI4MXd1RElGWjBLNHQxU3hSR2FrL0JpcWhFUEVuc0RYQVhMMU1Qdytuajh3Y01MbExHZklqMnVhcm1OY1RqdmRJNU1KeFREVDJHQ1BKMWliMVYzcmxPeXZ2Zjc2YTNiSldldTJXdmYvNmZiYi83U2ZYeC93eGNPbGxodms1OCtlbForL3dWSWFqdnNDaHJsL3g3MXZ2SUY3L3o2WHpqVUtjLzF4N2x3eGhya2lGRUtadVNyendwV0l6cFZ3YXdCbG1EVnd3dXVwb0hNdHRMdWNqRTZmWHBOeGUyTURRL2VJQzNFemkrak1yQk5tekJmOFhUNyt4aHZ5OGIvUE5haXp4cDFueitKT2JkWmtCdWg1dkp2TGgzWFRnaFlsODZjd0RPSWF3MTRibUJYRWdHUmRNRk1IRVNYZUM5Q0lxMGlCMzBjUk1tTVg3SEdZUTNpVWlQaG1lcFlEN1FjUUFQZHFyZzVXaDNTR0VnS0N3TVVsNGlyRGRmbVlXbTlLVGJYaU9Ra3A4UTRjSXJwT1NmSlI2dzJHKzRFT3J2cnBja0ZJV0EzTjFUKzczK1ZPQkVQbGpkYUZDNjJONWFGZ3d1MjYvMmZWelFaclFoREtuNjdtT3BxNFUyM1Z0dnpYTnptcklxWE82QlRlY1lzajZvNkhQU0hocFplRWtDY2NkMGZoRUQ4bDZpeU5WRGszdlo1dnEyNGpQSGdVN2VNRWpnSHBSSk9Wc1BnUnd3K0F1Mk14WmhCZVQ2d0JnVGs4TTU5S01CaVVwS0NrTjVSU0EycnpxMHRXOU5zMDQyanpheWJTYjZNcjk2NGFHODVUVnFYOEQ4WDF5aDhxMzdFRi9EVEhrRE1mS2g1Yi9vZDZKazhaaVMzd25lclZzUHdtVzRCWElSc3FTNWFhNk9LamV0T2YwWnRRa0RFVVVhNVQ1RVhoSmpFeWpHelgvODNaRjR6Z05WeXA2eDk0bFQwL1AzL3NUeldlWWlQSGxEbGNWQmNleFdjNWdUa0o5L2NsUGRrTGVJaWNKYm9ONkRiT1pybU9ES0hzWjNUU1l6cGw4c3luekVtRkhJVUlPditYQUdlYThUYVVoNHFUaFpwbEFOL1hDNTk1eUJLZ2Q4NUZpYy8zOXZiM3d4L2U1aFZrNGx4bENnWXhla0EreEVYNXE4R1pkVDlqQXJXbGhxaVVHQ0p5NDZ6RkpxbkhFTjZqSGt1YTBsK3ZHbENzRW5HSnlxOXI3bzg0djNnOSs0dGwzTmc2ZTdKekdjZmNZMC95VjFjSlp1TW54eUprbzFzUUFiZXdCL3pPTE9yRFMxRlZNa3lRSkI3bUZJOE0weUlFaGxFdkNSUUtTZ3RLQ3AzMHAzU1pkUTAvUlcxT2pqZGxQbm56eWl2ZnZQTk8rcmxoOCtZTjVJODdkWjk4N3J2ZmxjOGRQb3pkMy8wdWR0LzMzdmRlZlBIVlYxOTg4WHZBajlNSWNWWGNHUlJBTmNtb0hlQVY2QVo4c0F3Ry9NQldwSGlPRUwweXplOEFrc0ppTUU3V3FEUk9tQzNZbHJZMjhVU0FyRjJYclo3akZRRkxpb0EvL3JuZDZoRHRUb2NUUCt6eGVxVy92cUY0RHNXUk1BOWViWkpDVlY2WHgvejNndkx5OC9PcHpPNkhPWUt2UjdWbzB3a0pjeXdSV1FHSVIwS3dEd0J6bEdyejVUQmZ4UWRYRUNreUs3WElJNUExREt6UHJzbkhEU1JKU0ZDTGFxU3FSdEd0TFZPblRvLzlXVWpTcjdwV0NNQUl3NFUwbUtRbWlQbmRxYUZscStYL3dDV3g5bVJ6bVhqK1V5RGFaTVhmV2RneHI2ZS9qeHlNRER6Yng1MWFkblRMMmtlSDVFOEdSWTlYK0VEd0FROHFLdkx3ZmZOV05jeFlWSG1BSFAxYjJGMWJpeWo5SjBGWENvSCtadFNkbkIzRk9vREJnQ3A2RU96d09nN0lZa21JUW5BZUM5d0JtTXdyS0RwSGxlQ3pHVFZKVWtPRFZCaFdVRExvTENWUnNhWEUySUtSVlZRSmdBU1JJcUNNK0NSMHNrVy91M1hoY3ZrUDN6OFl0QW1WQnN2VWZWTTNidXBidEo2ZzJaNkIva1VMdW5zSnJiVnpIMXZJblhyaW9jZTZnbDhlZXU2RmxDTmFHbDNFKzRTNVhiUG5STnZiWTlObVRwL3Bua3VJZlM3cUtKZG9QSFlOeUxvTGFJMmlHaFJQMXRkZ3BNTTllb3g0eGFnYXNFNVhrWUl3Z0dGWGdoeEZGdWlxanNIb0tuOHc3ZytLUm9PSEVHYkxBQ0pYZmQwRVBXMVVkb2tVNjNHOWc2MnBmbHpSenNkdlU3WmpQMUcyajhvTFlNZUJ6NWJPcXBmdisxMEJkeXBXTmZhdW9yRVBaU3Z1UTdDWldzUjBDdUxZWGtBeUdEMUpaWFlFOFBuTVpLY2VBRGttOG1KNUhRdnJpb093YUJjTTRrRUxSNEJzL1JBUmw1QkNIRWNENHpCRHhGV05vb0lrdWdPQ3BJa0w5RThmVitqSnVIVVN1dFJyWWlLSGllVUd3M29HaENIUHRLNWN1Zk9KcFovOWZ1aTVYa1ZXOSt3ZXZIelp3aFdyS2l1U2pZeWY4UXJNU3U1SXJMMDkrazVnN1ltcmZ2alQ2a3BYaElncHRYTHgvRUdwb0V4a2dtS1pFaXQvRTJpS2M2Y0JuMFJSTXRrR0NKYzFrVkFEdkFsUXlDbTBzTEMwaU9ISW9xVzhIS0h5YUhsVlJSQXVMUXNHQ2cyR1lxQkh3VStNbnZodUxVUUlVbmR1bHdLSTJEVk5HMFgyTDE2ZUNULzdYM3VjOGIzOVc0K3Qydjc2Nks2WHA0YWp6K0V0MkNCdlgxb1g3Vy91MnpDOG1EdmRNTVhtNldlTlBiZHZhMjBhZW5UTDVVK3RYcmV5N2RqYVgrTGF4MHhqU3lwbXgySzlzWUh1VkQ5WlYyZUFuaWtnb3pLMDRJUVZnQXV4S3lhd0swV3dDd0IrR3pnSGRnaldHaXVrbERWVW1peFdUcUhSQ2VjR0tKUXRReDdSWGNFVCtpaGV3U28rSk1ybVY2VFdhQ05aSGM1V2ttZVVoMHkxZ0tpalRUcDhqWHdIV1RJK2dUblBIUUhOcW5XZmw5eHV2U2xhWnNsbkwzdVJMQkxjUndYQm9zZGczbjVZSTZYZ2x1clI5T1JVcHc1UUJqSGNCaEFEdzQvb3FUZlJLZDZFNHpRVFVGSGg4U0JVVVY5UkY2dnloRHhCb1J4dVVWSmwxQnl6VHA4ZHFjVVRrOFJyVEZaY3g3ejc3S3ErMU5CbFcxKzcrZWJYdG01Y21lcGI5ZXgxc3hhUmZNeWlXWDJEZzMza2p6dTE5TjdsZ3plSTRtMlhiZmxXWDkrM3RteTZWUlIyRFM2L2QrbWJxWTZPbnA2T2pwUWNXdExWMWRmWDFiVUVkT3p1QytmQUg1MENSbFlSSFhOZ2hqTVRqdmVBZFdNd3h3QnRQSi9XTVJVS0FHMCtIMEsrS2w4a0FPRW04Z1lLUTZxT0FVVUZzTTZVdGRMT0pDYkdvY1NTeDdESS9KSW9sSHhRdnE2RTZOb3p2OW1ZbjlhMXhhQmF6VlRKdUZOVW5lVFQ4dUY4ck9wYTkyMDdORjE3aDZpV29tUXdXNHBiMkljQm8xQWZ6Mm5JSlVEc01qdE1mRDRZTUN2NEhXdXB0Y1Rsb0dDRytuZzFKNkg0SENiM1c3NEtiYlEvWmtFbTN6VjJOQ2YzQlhQWUFkaFBvblB3b2Nwa3FFang4Q3o0ZUdadFprSVk3STNQQ3lpRHpJQ2ZNQU9xeXJtNFVKdkY0em40TUhzdS96a1JLc0thdXdhbHVHWnVLbkFFc0tpUjRLbWU4ZkZXV1RuRm9scXNaY1RwT0F1cnpwZjlmcDVUY3BWSVl5ZVpPVktKUzNMbU9jOS9XT3h5RmJNV2JxcFUyZUFUSFBKYjhsc093ZGRRS1pud0hYa1Y0VEM0MXp0QXZ4NUYvOFVKN0dGQXBDSUtKNE1nQThLSzFlbTBaUUQxMmdGMTJrVzd2N1NJNGxiZHBMalZmbWtrV3pUdU8zczRHOW5LOGZFNEY5MEJ2Rm1rOGFZZ2c5T3o0cnV5a0liVGRWbnBGaU5PaDNXWTZ3QStuUC9RcVhDSW1UTjJVdVVRYTJFT1VUN0lXMHdLajdDRUpaVkg4aGJnemM5QVg5K0hHRjFDZGVpNnBBVjBCVnZBWjRHeXFzRjZNRzM5d0I4amZoY3hnblFwU2lteUxMbGhNRFlpUjFKMzR3YkNHRVEwYnlSNzJFRFNHUWlBOHRVRmFxc3E0VWRGS1ZLaHJGb2E4RkYzVUkyREhaTmdyWGk5UFFmdnM4VnZmUDJ3anFsS0pLb1lDK05mUDN2bTNKU0NRY0tuSDJxYlBqMlZnai91b3pPUDdIOGcwbGZzZGhmL3ZFcnZ0TTVxbno2empFS3dmd2s3bDV5UGVvVmpSSGVQcVdzSCtTK3M1NDV3Y2RTRit0R0M1TndpRjJOa0lIeGltUjRUMWlPTzBYTWppREZqSThzWVJ3d1l3ajRFekFMNHBkUHhBd0RDU0dxSDE4M3Y3a2FvdTcrN2I4RTh1TkdjYURBWUM0aEJDL0hvR2FlbkxDMHFRQldHd1hMTHRrNkM1ZzR6SWJGZU0yVjJxWjdKc21VaVcvc2Z1K2Z1WHpKam1TMTF6YUoxUys1WXVDemc1NHNjcnBJeWJyYWh2RGpZS2k1OWRQdWVuKzlZZkhUN1Y2NHo2S3hPbzk1aWFmeldnaVAvY2VNUjdIdXFlbWExVkNiTWlFN2o0Z2MrdWYvR1U4TTlIYmZ2MnJiK3AzdTJ6ekRxOUs0OCtiVnlseFJvMzk1ejFmRlZYLzM0eml1ZkhLNWdTLzJsTnB1ZGQzdjNmUGpRaTdqbEdUazE5L3IyNnZxQkcyTHJFSFBoWThCMFo4SFBKaURDbjVKc1JFYXdQMFoyUGRMckRVTW1iREFJS1IzSHNHUUZBa3pDSWpGR3pVMHd1cEZnT2xzd0xwb05aY1NXNDBtZ1hNaXZuK1NvSTIzay9YcTJubVgrcmM2TWhYNDFrbDZpYlB1aTh0ZWlYZXF4VGNwMjBkZ2phaEQ5NXBMclA3bUdPK0lUemwrbUlEd0Y3UjA4bVAyTk5TcmJOK1RGK0RGRWZmTk1vSFU3ME9wREZZQmdkNXpnc1o0anVLSVdsazg1K0RBOTV2VHJlWUpmQWZNUjlLQlRBMlVTWDVVbXE4QWE4VHlCSGpvQXZ0dklCVHE0QUxTSlhhbU1SenFkTmh3V0VFSTFzVWk0Z3JoeUgvTDZnMDFHYlFIcEZieVlpYzB5TEdFMWpBOHdtVzdab1IvT24vUEh0Mzg2OW9KQy9XV1hxVGJMZVBTMnBVc1dMNy90eFplSFZyL0lIWG5zMElJZFl2dTczMzVDWVFKclZMWnlLRG10czIzTXZMOXJGclZqNndHZnJBY2ZIa09keVdRbEJvaElQUTRzSEFLYitHRTl3QlVsK01yc013dzFDMkdPSUY4QTlNR2dLQVVDQmhYT085V2NwcG9DaGZrcnVGZk5DQ21SY0IxTitYTlZzYlpaMWZYT3pXdjMzLzZOQS8zZlhGRmdyZlpaWTJkL2ZmVFRXL2IrN2U0bkZqY251Vk9BakVjRkwxQzQ1cHJYenB6K2NYV05ZV0d3ckw1dzQ5M1kvZHhwN0w1N1Y0ZG1BMXBCbnJ0Qm5oNklmSmNxWWl4U3hLZWo0dUJ5eENlbHhjY2hEc1JIeEthTUl6QXNMVGFJNmdPaXp3czNMUUVWMTFPUktWSDk1OHVMeGVmMzdqMy9oQnhXeERNOHJDcnJiM1p1dVBmKysrL2R3QjNaSjM5MDVvejgwZjVjQVoxdmVPbjA2UmVwYkFnOUFQaFJISDJtZ04yWWtxdUd1YkljeDI4all1SVpGZ0l0akkyd09vMUdBV3c3eCtsV2d1S0pPcElac2NCVjFWbFhzVHczK2dVdUk2eXJTU2ZHditoMXlWWmtBSmhnMkRiaFNqMEhLeU05WDFBczQwcmxlcFM1ZkdDQTV0V0IyZ1ovc0ZHMFNYNUh3RXpLY2FwT2dmZnd1Mmc5VFFlclFRMzA2YWxKQmNIRnlraitYTDc4UXhMcGZvanZhZW1jVmdOaC9tQ3VQTmpidVNObG92d0xraXcvTkVaaUsvbWRINUV2OGpjRlg2NWtjbVJTang1U3VCdlN1S3VVRDlicmdUdUdJYU5pS3RQMUExN2o2dmpLeE1YSGc3VDF3R3I5dHZGWEFQc01LeWRlQU93alU2eEh0Y1FVRSs2WnFDbk9jTS9tcjFNTXpXUnhkamJycGltc3V3N1hFTjdKUC90WEZSNGRVN1kzcWdWTTltZ1c3K1NmRXViOWQzYWduV0VjUm5QQXpod0ZPOU9PdXBLem1vRXNGMkFNRWlrQXFtTTRyZXBpWUdnbUJLTHM5RDdEYUdVWE9OeU8yb0xCWUZ3QWM1Tk5YSTY1U1RSbUtFbG5GbXlxRDg0MVAxYkYvR3pZU016UDF0VXZhZjVFMmZvY3R1VnZYNjJZb2ljWHFhYm8vMUJUMUxlQ21LS3lSN0lkakR4V0pCbHJhalN6ZEZVQ3pCSUdkSWE0ZTBCZkZoTDdpc3hnYWN6Y2Vvdkp3SkxhdERXUG9ZdUlaMGtlR3F3VXpXNEJuUXZSL080NXMyZk5uTjdlb3ZwVmZ6QS91elJ0bTB5Q2Z0dm55elhERFgrMnRKV3lkRk9UNmw3M0tkdE9lV2RuN2hGdEJMNUtIWUZ2N3RTTzBEZ1ltSEErUndGd1JQNzFaQXFoTXV3VHJGY1ZoT1RuRVNjQW4wSUU2WE9BcFBraGt2WVRVc0FaWUEzU09CTkNBWm85U2lmOUZIcnFKa0Q4Ykp2OEp6ckx2MktVQy9NeCtxdnFPMzh4K2Z6VENvelJhbHJIUFFMaGF6eFpYMHh5cmoxa1BZSVBHYzJlTFFKSnJnSmREaE5nQklORFlpQW9qcHVzbXNRanFRVXliUnVOMGJQcUNhcEFUdi8yNTMrK3Q0QXE2SXpoQlF0a05jM0Z2Sy9OZGV5dUYxKzZzMERBMDZsS3l1ZUYvbVZNZjlwVXFicjNPc3g1SlpxZjdGME12cThLSW5TU0FRS29nc0VxY3d6ODIyVldsVEhQb2lvalF3SmVIVll6ZG5EMWlpVjlpeGIwekFHK2krRjRreTFvemRaRVhFYktQVzRTdldmVk9VbXdFNHFSZ284bzVHUFhGOVZMbktXV1g2TGtSdVFIcHd3SzdtQ1JaQzJzOFprVUh1eHZXeXk1aSszQmdwS2tVQ1hXYjFmMXRDSVhFZUd2S2R0cVBMMVJQYkpINDUzOEdKdW84YytxN3lvS1ZDaEh1anNqVGNHZTRsQlVxSHZ5YzNUMlJaeE02NFRtQ3lKb3RRWWFHVVJ5VTZNUVNDSGRFRVI5T2dWMWFBblFVaEtXS1VQQUVyQ1kyNVk5RW1VR0RpVHpFYW5DaFFuVGJVR0tyYkpXcjZZNkYzTit6Q2VVM2pmeEVOV2ZqTnU3NHc1Vmk5YWx0UWpqS1lvQzFVMTBlQmlaZ01hWGdjWVVzVit6QTE2V0kxa0FqdWdRSGpWZ29qaG0wMFdzV0FwMXo1Z0dCRWdTV2JHV2JLMXhUS0lSWmlXTURKbng1MGNKV2xPVm4vc3lwU1Z1YmMwMVZJTzZyK2ZGS2lNeDZ5SGQ4dHd6TGZseFZSTThybExkeVdkMHBTN3NuWHp0TS9Qa0RhTFhLK0s3eHA2ZVRCK3NOdG1GLzJLemtuVUd0dUVZOEtnRERUOVRYMEFLVldvTVhncUxpWWdYZkptaUNReURoNGxCQzVQaXRXL2lXWGFJaUQrbEdCREZuM2VnTmdtNEY0ZEFsTHE4SERNU0RHSHhVa1lmUXJGc2E2L3dyS211TlJhMXllM2MxdHlncWxPejZJYUtBdndBcDJvTnZqck5vejYvdjlqRG5CdjczbVE4S1IyYmo4YzAzV0ZRQi9EbDF2L3R1aGxyK3ZTV1d6NDllcFIrN3IvOTl2M2tqenQxbDN6dXVlZmtjM2NUOS9zY2R0LzEzbXRuenZ6d2gyZk92S2JHQlZlQWZBSVFyS3pUVnFvT2tiaHR2WjRpS01NRVYwTldLc2ZyOWR3MmJTU0V3UHpLaVFNcGFJMlJmSGtBaVJSNUdZbTFWMkRxSlF4ZkpsaTQrVzkvZS85dURXYmRvMnp2dkZOZHErTGRWMTk5N2JWWGd4Qisrc29yUDN0cU1zNlBIUjljdVhJWjRibjhiNVRuVFdnR2VxWDdTUWZRYXFyRFNLOGsvMHVUWnZJRjk1Z0FVbllQS09jbHBBY0s5WWoyYlBFRExDZ3BLZnV2SmVHK2J0aElxamdHQWwrOU1EYWdqYVVaRkZwR0lFNWsvR0NJalZsYXdSc2w0MWx5Nzg4WkRzalYzZHlNVVBPTTV1bkpkcGo2RktuQ0lZbEJNNDBvVlZVSTZXazJKU2V2b3RmS0VHbzFKVVRiOGk2dU5NWE9qYjI5dmhrK1QwdEpiN2NscnpDUzd4Q2JOamRKM2ZWVEY4YXUycW96T0NyekMyMW52bkVNeHU0N2VIQWYrZU5PM1NhZi84NTM1TTl1WXpaNmpUcmVXS0dUZkVGZlpVbWxhRFpaek5XczVBbUpaYmJYMm5EUks5L0IzRzN2UGZQd3d5ZFBQdnp3TTVtWTlGblFQZEt6dFAwRXJIR0RsbUVRa0FIT0c1Z1J3Z1U5eEZPa3FzU3pETW10Y2twdXBSVENCWjNlYU5SdDA4WWlvMUcvY3JLaE5ML1EwelZ6T3Z6U1ZLS0c0WGliV2FzY0ZuNnVoNzRJbXB4TVRaZi8rei9qNVM3UlhaVG5yQ2gycUpIVTNGVmhwOGNwRmZwNkdwTnFWQ1UzajB0TzVEOTYxN3BWcTliZHhSMDUvZFNmV2wzaDBwWm9qY3Z2VjFRNTJTMjJ4VHJMSThFTGFETGRsdkdjN3U0NW9FQjNnVDNwQU4zdVFxbGsxMHlNZFQ3TThBVFBZTjJ3UWMrUWFpUHdQTE5QcWxvc1dOVndDcEgyRHJwTEhWTVhtak45bWhTUXFxV0FNU3Ryb1dnU2lTTGNDc2VVbEY4b3F4YWthaUJoaDhLOGtNcWtPcVdKa2YxVlBBTHhsN242YThOekZrcEMxV1ViYm03KzV2TFRYM25rU3FVZFVReWI0M2V2V1RJWURwV251dnN1ciszcFcvWFV0bmxmcWFzRnVyeUMvSGZCVzFEUU5iK3J4UnV3MnV4T1VScis3WmFqZzJ1REpOV0pld1d2dlhEOWh0bkppb1Nqd0ZsZ0x5dXAyTE54NDBPRERUVUJrZ0hCYUJYbzJrYlF0U2hxU05icXNCbzJranlkVnJUTStCZ0s3YUlvSXBMWXdoRlFxNVkybGRLTE9CVmJkbEdzcHl6UmxJaWMrSzFxdFBxVTdXOVBrS00rZ2QxTFk4T2wvaktZT1lDTUhOZDZRZjVQZXZ4aFVpVERhbzhreVRtUzNoeWFYbVNIUUlnMEYwTzZIOU9BT29FYVJaRUNDbU1tS1V0OG9kYVZNMm5vcHdEc0NSRlA5WmJYRHh4NGZVdDFibFNUMnJKaXhaYlUrTGhtN0FmN1hsMjc5dFY5VEZNMkdoejczZllycnRqT0JETDVnUXNmQXkxbmFTMFphSkZvellSWEtkTHJGSW8wWWtqTkdOQ2RtSXZ1VkJDRUo2R2tOQnNlUDBGbk9GMit5OXJjMXRhVUp6K296Zm00c2gzNHpSOW5hVGc0N2IwWFM5NHlrWDBzaDRaN21iVlo4LzhyelA5ZG1QOVUxSnhNeEdNMkZ1dElOUnlSMnY0b2dYaWdZd1N4Y0p5UVlyQkd5bFRVUVVDZUZKUnlRUXByWlJSRXA4Z254RTVLbGJKOGNxZzdSV2MrWlMxYldCZWIxbUw1NW9PVzFzNVlyWXNkcmxOcFVnSGRqc1k3OUJYVmRWVzZPK1BySjhTaWk0czlsaklSLzBZT2kyVVdUL0U0dXAvRmo3dUxIQzQ1eGN6T3l1K0FRbElzdDVCVU5HZlhseGs1SWtLVFVRK0VHNFlzWmtaSmdTdFFsODhOMkdmTmlJTkE2Yis4YkxCcm5EUVpQbGt1M0RpWjJOMkpMTWFNS0l5UlA4WmlXeTUwYS9qT1kwSDF5S2l5YmNlaS9FbHJMc01pZHh3c1VvOXNTZ2REZStVcnN0Zm5oeC9tQlBIMzRLM1pqUHY1ejdOanpBcmcxMUhnVnp0S0pCdUFYU3hobHg0WVJHSmkwSk5KUXZoMjFLcXhLVWRaSmtkTGwxd0lOMUJxcXVSSFgxVXQwUzVsKzZyOGVDeVg5czdUWnhvbkxPeVA1R3hpMFFYR2xCUHZ2WVdsZEx5M0QyaWRRbk1VYTVSOHJLaDBLMjNMOURScGFZQkw5VFJOSEtmME5JVlFRQ3hzRkF2VEdZTjBTMU5Xc0RkSmU0Sjc3R1c4bFNUdElOVDdCZERvWk5ybDQrUTdXT0lDU211YjcveC92MDBUbXdkb25EZXRsRFhTUkNkZXFmU01ZQ3pJVDdQMzg0UElUWEl3SkVvbEQxTnd5ak14WE9hWkdCanJSb1ZTWXdOcG5lRFUwb1U2RnpYQmFQT3pYeUtaUTRZNkxwbG1FWi9Iblp1cXAwMkxlUVZkUlBDU3ZjK0tsZCtOd2U4K1NuKzNJaGtndjhkZ2xsbWZhWHRNdHlhNmtjc3ZOZkpLMmNTbS9pNzVXWnUydzk1SytnY1o4b080VTM2ZWJtViswQ3Q4OG12Qkc1czJyWnI3RS9sVWRQY2wvQ3ZPREhqQ2k4SlA2ZFpNVDVhNXJhU0NpbnVBYnNUc0ljMlJWOEZBTC9JRXc1eWhLUEtVRGswbnBTMWFzdEZsREZzbzNhREUzRjV0eE8xOFBDeDR2R0g5YzgvcHcxNlBFSTd6dU4wWWkzQ243STZ4KzAwR3QyZ3k1RnZ4WHZrNmE3N0JKTG9OSm1hVnd3NjI5ODJ4Qzl3SDhydkloc3JwZkZ6aldhQjBmdEpwVE1oM2NXOWJkVHByM21lVmVYVExuWlhmdGRYVTFGVGJiTld3SWJFOGRySmpiQU4vRk81ZlRPOVBZbGVsUmJMSW1iNnhVcVlKQmJSK0paNXRLQ3lYTEdaNXBLaWlLV1lyd011NC9jRFZldDBibHZKUXZOdDhRY0c1VzhCdjNNc2VSM1d3dlArZ3REL24rN0NCYlcwQjNPb0FDbGdJUG5LTzZObWVBU1ZNRGtOb1FQcXNSa21Qa2dHeGhoRlNGcURSUVNTbEp6d1labFJBck55NS90SVhBTGtpM2RVYW0wcVR0WjkzRlVwZkJIR2VkZzBKVE9yckVhcHZyMjlyU2dCdHRTS2d4bmlqV1FPTmhibUFPdDJPUXhQTUpDT2RhZW5PZFBmSEU0MFFrU1JlRmNwOWlqVzZ2SDJvZU82VHk2ODQydi85NDN2dVhyU3g1ZUFzbTZVNFZKQWZHM2h0eVlOelpuWE8rSExMemJ2WTQvL3lsUHhPUlZReFRQV0p0czdVVjRjUDNGUG03VXg2aS9oQVZaV24zbFplUHZaR1hVMTFiYUltV2FySXBSVGtjaGxmamlwUk0vcUJ3bTRUQ3dHY0RjTWFBNUdvWDBndVhwVUdHRFUxSXBaUzVERUlHcWRIVWpvYXZhc3VYNVZEOU9KREZYdXZYb1hVakVjRWhpSU94REJ5NmRIQSs4SklCQVkwUjVycWEySCtGZjVnWXpCZ1VvSnJXMjRqR2cyMkp3dGQ3Rm90WHEzTjQwUGUrcjI5dTEvZHNPSFYzVU9IRzd6Q3V5cnEwOHB6bnJjM3RMZHZTTFlQMXRZT3R2UGxZRXlXTmJXTnZ2V1ZyN3cxT2pCdmtlQlZpOGw3MWJEN2lkWWQ4K2J0YU8yNHNyZjN5ZzZ5Um04a2ZYZDBIWFFtazdHTDFGTWpXZlhVeUxoNktpaFpNQ1FHZ3hQcXFkbWRCWm1TYWxhUGxGTFVZRDlSaWhyaCtVMnpON1cwYkpxZCtsYVBQVDhxMkNQTDMxaC82UDBiZHYzcjNnYzdtNVBzY1RESkw5REVYK1hzU01lT1ZHcEhSMTJWYVc2a0xGclUwTHp6clFNSGZuLzlqamlKS3hnMEREUTlvdXJRZDVNbUh5eGRHMVllSHBoTVljalRYaXlSNjhTRkcvMmNvVU4wOWVseWxxeWlNQ3pQcmIvMDZJa0tJd1lEY1ZGVG1Lekhib0p0T0p0dGhlNHNoVUhqRkliOTBLdjJJdnhaOERZY0hsSlVwM2R2dlpxY3diMXlCZFdWSk5VYm9qR2YvVlZSRHErd2FONkFvanB0VGRpdGFZeWlLNHJlS0d0ME4vQjNMdWlNSDl4L1I3STFuU0htNFNTUGFCOHROMHdTVlJHYUlpWmNDTE85Z29DUUVCS0NrZ2dYbG9jZEFnUnhKV3B6b09pL1NQOEprS2pUK3dsZGxyT2J2Y0xZTHNjTksrODlZYkVVbHVlWjNDVnJmcmJtMEZ2YnIvbjNyNStNNEdkdFcvdlk0N3ZQM1MxNDVpMU9jQlUxZ1pJU3I5RWYzUG03V3crOHRmTzllK1lvL2Q2UEFDWmF3d2RRRTdwY0VYRllLMWNhTUtQSFdzSFNPRXpxdmRLNENtZElHd3NuNFY1R1BKSzVLS2UwU1F2REpDOUVFMnlDV0VRTHc4cGpKc3J6SmFMZ3hSbjBNV2s2UTJtU3Btdmtua1BGeFNhTFdHU3gzVGgwRTA1UWZQSkRYS3dDU0RWSGZQSWtPWDd5NURFKzBHVDBlMHFrcWlBZmVyaVYxb2luNXlEa002UkRlczdwbDhsYWtkZHhqNEFzYTFFSHVrTjVDaUdJZWIyMlZpSUlsSmxudVZHVGdad2FOdW9ZMm1PbzEvUEQ5RGt6clJVM1N0US9uak5hYzFYS3BVUG9vaGVDMTZxckEwdlNVZGMrSlU3YTVBTmlrUmhVdlpaYmFSVWZsMFpPOTZRUi81U3pQTVoxWG00bFJ2UFBDb1A2Ly9MbnZ0ZVgxK1RsQjRyenpDOWNlZTBtTUswM3ZicHg0NnMzTlc3WnNqdzUwdFkyQW5abVh2ZE16V3lPMWIzNkc3ODNQMTRVcTY3a1d0YXVYNWRvdmZiWFgvN3lyNjk5NzhidDIyOU1iTzd0M1p3QVBRQjR4ajBFOW1ZNjJueUNKYzhmcVUraFNzaGdVQm9QcEhTcmJHUjgzYUUwS1JCdE1pQWo5ZStURDFJVWFqcWkxUW1hVU5BNkRkVEN5bVNSQ0hIb1Z1ekZuNThzdzQ5N3IzbDAyUzFkcWR6S1EzVzhvM2xEUjNYdXdZelhvWjZtNU9TOE8xZkx3em1xdGFaMzN2Q0RnMGR5OG1KN3RRRHN3Z1c2L3Vid0N3c0V0QjZoQWdhdHN5clBVVDhncjJQdnBjZlgwcWVvMTZGbjZYcHRndkVIZ2JkVDBSVkpZMGZNYk9KSWdLL3hWMTF5VXNwQWM1S2dYWUdVeVVoWWg0WmdvU3FOTXdJWUprNFBUdnppZ3hUK1RrVkpxWUVXTDZSR3dsK3BVRFhBSVZaL3FaSWdpQ0lncXFCZTdmblFPK3E1SFI3eTFHT2Q1L3crclVOczFYaFdnaUhnNmlqd3Y1OThWbnp5ajdZM0t0dUFleFY0eGNpOHlSZ0pkakQycTJBOEVRd200c0VmeWs4VFB0MEhmT29BUHZuUkxJVTVickM2M0JCNUJrNUtNV2tQUkZDTkN3NkNqK2ZZOWRuSGxjZmsvTWhIS25qcVkzS1hxRk16UC9KcU51aTgrcXdudHAxVGQ0NHFybVZ5UmNBWFBvRDVIZ0M3MDRFTzB3ZHVubWxOTUVTeWdQQmFNYTlMQVBhZ0NJODhpd09ZWGpFbkJqMnIwd1ZTSE1Nb290WDhPZW1IMUU2UzRIMlNvVWtmR1RXRXRDRnF3MFlrUFdKQUsxKzFneE51RE1EL21ZNE4rc1NLVFduWnVOalh6QlAxcExHWjJpYnkvTEt3MFN2c0ZMekZwZFdKM0IyMU9lRVloSlkzOW53dEVydHVGbnY4N20rTW5TRVJLR051ckx2amdQejRoUDNiTlFXNC9Zb3JmN3htdmJvK25nQStUa2NqSjZhUmVGMDEzQjdTcDI4WU5oa1pneUV3dmdleU5Ca2tweFVuUnlJUUdEcUVKaG1vMlozT3VHWjR6R3FpNlAvWjRpajhBWjgyNzM5bWN6NFV2RGQvSDZ6ekY3RTRES1B4NmVENzRPTzJBbDVaRGp6S1I3N2N1bDVrUWwzUFYxQldWSmlwNjQxL3Vwekp3VnFNL0lmcnIvL0RvVVAwYy9iR3BxYU5zNVZQOWpnQnBHL3RWRDdmVXhDVWhya1pGSkIzY3BmQmZHcFFFdDJjTkVVeHg1c3dTdnRjeVVUU2xUenh0VHhQWGFZeXhVeGVLa1RjUmpVZGx1VmtWV040c1N2QXk1S0h2bXFUdFIwUUc5YWdhaUpUdFdpVmlVeHNsNWJkUkVhd0hScktWRnRjWllQcWNYT3c2SWFzVUlVOXJpRk4rWndpclBFMkRzRG9lN25SQ3NYMndMdEhNcndqeUNLUWhWZWt5WEZLT0ZOSkNMRXE3ejRmb09SZU1ZRjNJdWtRdUFoQ21ZeURuNk5FT1FpbFA1ZC9qNlNEdjhJczBNNGV6d3J0emwrbmJKVlA3TmFpdi9mRzQzYUk5Y0JXRUwyTG8yZG9MK0NKZXZMc1cwOHAyV0pNcksyRmxreUpPYVUxcVVDSzVKVFNYN0tyTWFydHJjcTBUbVl1eWhTNHhsMlRBZHNaWTB3YjZVaTFKNUl6ZGtCNStVWWNOU3FteDAwTEtKbkg0bFZMNDcrRVY2YmF5bjdZWFdXM1I0dXRCVk5hVTN2bll6V05NYlpJclZ2dlVGMldYZkIydjdLR1BUNmx2TUVmamNZTXZsV1BieHlhM0s3ODY4SDdGSjRlQmRzU28vYTNKemtuQ1lTWGphdnhSYkpxZkpIUHFmR0JrWTJKQWFsYURHaXZHYUY5VjJxRlR5bndhY3MwOStVaVJKbElmWTlXK0lMWm9mV1A2QXRGV2c2dGFlbnNDcTFZZm4xaTN0TGxUKy9hZjdYMlRwRzZ3OHUvR2EwcVhyYjJZTXUrRlErdC8vcU8yZzcydVBJbWtZN0dTckhTYmpLYUN3djlWdzBQN2UrZWxYNlBTRWZ6d3VJeUU1OW44Zmw3anZaL2FjWWNrL3I4TTRtN0Y5UGU3SGl5SGx3UlNZdU82dWp6bFN4OXZsSnRrTXp0eHBiRUNsR1FKSzFBbG03NnREblZ2SUVhRXFxVlBqVXNJdGxieGxudnhOdHBNSFRyVGJIckZ4VG11YVFDdTh2MWs2OGZPL2tTT2Z4UzJ5enVGRmxPNzlNZzZNOFBod05Hc1NMcUtmU2FON3g4R29za0RNSWxTdDhqelAxcjdHRTBCYTArWWN2eW95VWt4OE9SNmg3SGtaZnlaT2NJa3RMRWswcWN6MmZIK1ZTUnA2QzRGQURjSGhlMTBtVnVnSytiVUEraytUcGlKdHF5cWdmc1g3eXEwM3lYK01NTWJzY2dIdW8rdFdheUlIc1ljT0xsR1VjSW5oTS9vR2d6WUhkcnR0Y2tkUkhTN3dyMFg2d09HUGpmcWdQZW9OWUJmNWMvZmViTWFmbnk3NmZsZHI5MVB2VjBRajB5eWg1VzQ3QkJzYXhNWkk3bVZEcG00VlBqNjRBdy93NVNCMnlvS3FCMUhhVGpFS2REdVhYQVFGWWRrRFFyU2NRTGl1UHJnRGlUTGcvK1Q4dUE0VHNNamEzTlUvSU8zR2FkMHRKYWIvaXFvQktrUGgyeXVIdWZ1U29jaVpodjZaMnRaV1V5cEpLU0oxNHQzeWVXZWFWeEpPL0VDejNlb2hMNVlYeHpkazJMUEJleUYyai9uQnBnNEdJMXdKbTBCaWdXanE4QjZyOXdEZEFSdWxRTmNMSFN5L1pmbUszUExmaFpkKyswcVVmdVY3WngrZU9HM1BwMjN1aTFoZXFSVlJxVFBwTS95VGJMZS9mbUFFTERwOWxNMjcwN1hRK3JrTmRTSFUrUWZvTXFOMjE4MDZtcW9hNWhSRHJleU90U3RQSTlNRWR5alN2Zll5dWoxOUVYRWJRemlTK284RW41cHBrM0hybEpDcFFXejEwOXYwbitTWGV1MnJjZU94WWZyL2JuLzNucm5XMGNudEpWWDhYd2RadTNNRHR5dE9GbXZEUFQ5MGhyZlVCYmhOVDZyQmV2OVFXK1lLMHZNTEhXRjBGaDBSMmY3UDBGT2EyZGNhM2NGOFBVUWRGNm45VSs5aEdlMFRDek9wYXZWdnlzZHNZcy81UWU4UWxzQ1hzWWFDbVZIR1BuZG9vZVMwbXgvRTlhOVlNampIdWJja1FzZzBrK0pEL052czhQUXF5K0tXbHRnVUEySDZZZkJnZWp2ZnFyTlAycUFwS1VaTmJTekRXaGlMN1V4azllcFlJNEhvMWtob0hJeVZPUXhGNWpabjQ2RlpCb3JJNUtncmMwb0ZkZndtR2xDVzBmQTNTN0NQbjVXS2NnT2UyWmVkTE1wVHdycjZWcTRWczFEaXErMkdNcExWcDFXWWpqOGFicnI5K0tqVGkyY1dsUnFjVWpmdllCbTRldnZseXRyV3pISnZhRDgveGdwRDBXSzRnczZ4MHVHYmxGTkFuNzFqbE51eTFGbmZOQytiRlllOVZUcDcyK3J4b0tGaSszeGFxcW9yYkJ4UVhHeldXZUU4ZG9mZktjZkIvekhrL2VhUkpYZUpMNy9oSHRSVWdERTE2RWxIbmhpU3VyZFliNVRuemF0Q1Q4OGR1OHdpZmZKcDB3dW42L1VvTkY3OHRQY3lHUXh6UTBrclNDMitOcTRKNXVERXFWbGdjTVk4a2IxcFFIZzVIMk5xdEtUcE1IcmJCa2hnRUlIRURLYS94WUlnL1NXVHdOVFcxdERvU0RZWDM2QlQ1S2NVcURSUEROaHdzMU9iU3IrRnBoZnFJeGhxbGtZdWw2RitQL2dEWGg3UnJUcjhaNTdBZWZpVVJFU3pmR1FEWmJyOTg5b3VOeGRNTWdGUkUvZU95RXAyeXpzV0R4b0MxYVZSV3pMVjljWVBpcXozdjZxU29RVTM1b1htZVJaYmZKdVc2ZllBcmNmZVd3eWQ0NU4xZ0Fjb3BRSHQyRUQzRGR6Qmd3LzNKU3gzeEdzSUpqSlFERG92Q0haZENBamlldlBBREVSQmpCUUhUS0lHWStBY3pBSDJEcktLeFRodVVBT0N1ajRTZ3BEU3FERVJtcjFlT0RvaFFTNmF1QTFQTHZ4UHFMMmplbTExN09RZDVVOGQ2S2FZMWRVcWl0M0Y3b0QxZm50ZXhmR2g5T3htZUwyVWVZTVZId2VNc0ZSeUFjc0xuNmwwaUN4NVA1cHNSbmJ6R043RXExaHpaQnE3WlZIS2txS2FSQlVNWU1xREUzZytaUDBrcWJYU3llN0tWdXpJNnY5ZmRyLzJKVHA4YklIM2VxUCt2b0w1V0RzYW13MEFFWEJMbjMrTzBRK2RlaWVlRHlucU56Y3BneHcvckJTeTZvWkhqVGRLdzNjK3FyZXFZQWY5azl4QkxzUWJ6SmJPTE5venFPNU1rZ1F0K0FUTHpCTkdDMTVMRm1JOVlielBvUlpESVpWaUdEeWJDQVBFMm1YS3FEUzNWWWw3NmV2cHp5VXBjUEpEM3o1OWZWelY4NGYySGR2THE1UFYxVGsyS3dxRmdFV2RhU0oya29YN1FHQXZWdE9GUjQycnR3NEVOU1h4UVVVdDhVVk9lMnEyMjkyaE5WOU9xRStvWlBXNzJZMEROK3Axc09Gem1jN3Z1dXpNc3JjK2VWZ251enUzMkgzRTVtc2ZOOHY4VlE2aTF5c3Q4bTI4c2hEdW4yVmRaVXltODdCSjBCeDYwUk1ScnQvanQvTC9NVHdSOE0rdkhscmZyYVVwY243M3A5aVh2c24wTEFXT2l3alAwM0g1Vmd5eGo1NkZpdEVBajRyM0k1bk02cnBvcjVJSWJyN1BiaVF2bldIL3dBc1NDckVQZU9LcXNoN0tLU3l0Y2tOUk1rWlNCR3BSaWtsQnpIYWlQbURSWURieG5Od3hhejJYSjVGc3VSZ1RjWlJwQlpyemYzSTdOWnZ4THB6ZnA1YW4xdjVnU1JHWXdHM2ppS2pCYUQwYkxyQzk4dE9ldlNOekpZekxzdWVTY0llNHZxNnVxRzZsWXNXN3BvUWZlY2NFTFZBZXYvaHc2b2J4Y2lBeWQ5dFZDZDhsQjh2V0lZdjdnK0RGVFlYYksreW8xdE5aR0dXSHVOTHh5cEtJbnZtWHJ0elhON0h2cStMM3d4cldnWnB4WG5qenVkdDduc2k2TDJYNGtKWDBYTTFVVVU1S0RiNmltN2J1M1VqWWxyUWk0SFdjc2YwN1c4RFRXaGJyUVJiVWJ2VXcwcGlwSVhLWUtXZE9RRG9OczhtekhrcmNZbUk2L2ExNW5wTGdwRG5qSFBZQndGejRISXU0Mm9Rd0s3TktJblFzbkRhS1FBNXhuTWVRTldiTFJnazlsb0lnZnl6S3VRT2M4TXl6dVZ2cEdlSVZXL3lXK29oeHVpTDNDL2dhVFkwNFBRcHN0Nk52YU1yQndhWE5xL2VQN2NHZE5iVzJqWlVHeW9qNFp0RUY0cE5qenpNcVdzeXBjYTltZmVwcFFsV1ZXd1NEWDZHWVd3cTJweUVhdkExaWZ3WGZ2WE5iWjg0MERibmhxdjBWUnFaWFhWNjZ0MnhxcFNUcGZMMmJhaEtUNmx1YXh5UVVuam51bXNpZXBDUmlkaTBlN0NTVXpFTzNmei9MYXRxMWJYT3VjMWpWeFc3TXp6MjRvOFpZeWphTFlZRUlKQm9VY0l1bXBkam9yUkVvdTdaT3lQVkMweTZpRi9pOWlIU2N5R3ZPSUg5SjFyNjloN0FmY0tLSmFNcE45V3BaVStBdWtFYjVTK3BVcEE1WUpVRk5ES0c1TnhOT3ZCTm5hWDkrU3h2bFBMb25aN3NOanFXbkI5N0NaWmZkTXQwMHpDNi9ON1RyOWNHeXVNZWlvclE0WkErR0htWFMzV3dPZTRXc0JnQ3dGU2hhaVdlaVppcml6QXBZZzU1eTF6anpZMXpweloxRENUWCtnVmpwTFV5MUhSbzlhdjV3QzlmaFJLU2xsMFpwZHkvc2QxbkY5TlVzZjV0YnB6dTVKSG1Dd05odjR2RWY1dENnQUFBSGphalpMQlRoc3hFSVovTHdIUkE2aXRla0k5V0tnSE9MQk9vRWdST1lWSXVSUUpJZ0ZxajdDMWRoY2w4V0o3RDd4RUg2SXYwaHVxK2g1OWh4NzcyM0ZMcUVyVlhhMzllVHovekt6SEFKN2pIZ0tMNXlPK0pSYllFTzhTWitpSUl2RUtYb3ZQaVR0NEtiNG5Yc1ZHOWlyeEdsNWs0OFNiMk1vK1VTVTZ6N2o2R2lNRUZ0Z1NLbkdHZGZFaDhRcjZva3Jjd1J2eEpmRXEvWDhrWHNOMnRwMTRFMit6OXhqQm9NRWRMR3FVcU9BaHNZOHVlamdrbmRPaU9RZXZOdnBvamhKbmtXZHhMN0RCRGJtSTZpRTlQWFdHZHNmMVRvenFtY1hoQ0lwdlNXM3dhSEdObkNyRFNBcTNYQnZhTmVmNTB1cUt5cUJWZjFUeFVNTXVvMkJrbWp0Ymw1V1grOTNlb1R5dnRCeVoxdGJheWpOYnp6UkhjNk1MTDRldHI0eDFjcWZ5dm5GSFNwVzFyOXJydkRBemRkc2FyOXQ1bks2YXhxa1VJa2JZRFZtZVBBZzh5Z1ljMDNQS2E0RmpNK1Y0d0JyRHFmWXh3QVFYL0lha3AvNW83MEYra0hkNy9jSGtZakljTEJlenR3ajdyOGI4RHZINEhCYkN5eWh3ZERZOGJibFVIeTYxZGJXWnk1Z1ovMVBqWHdyNzFmTkZ4eDI3SEhRTmJZNlpRdDRwNTNCSFN1NmZZb3dUaXRnUk5zUVZ0bTY4eTEwOXpZMHQxZW40QkQ4QityR29lUUFBZU5wbGl0ZE93bUFBUnM5ZlJoR2NETVV0YmxHeHhWbFhYQ2k0QlNlb3BURmdMd2cxQldPODFVZjFQWXltaVRIUmMzTytuSHhJT0h4KzhQWXR3VjlNcDBxNGNPUEJpNHlQQnZ3RWFLU0pabHBvcFkwZ0ljSkVhS2VES0oxMDBVMFB2ZlRSendBeEJobGltQkZHR1dPY0NlSk1Nc1UwQ1daUVVFa3l5eHp6TExESUVockxyTERLR3V0c3NNa1cyK3lRWXBjOTBtVFk1NEJEampqbWhGUE95SkxqbkFzdXVlS2FHL0lVdU9XT2UzU0tHTHdMU2JpRVczaUVWOGdocTFyU2F4V2padXBsNjlsT2xHM2pJZmpiNmkrV2t5SjEweTc5TzhxUGxkY25VOU44amxWRitSbnFGekxITlc0QUFRQUIvLzhBRDNqYVkyQmtZR0RnQVdJbElHWmlZQWJDUkFaR2hpU0dGQ0F2bFNFZHlHWUJ5ekFBQUNmVUFqVjQybU5nWkdCZzRHSUlZVWhpWUhaeDh3bGhFRWt2U3MxbVVNaEpMTWxqMEdGZ0Fjb3kvUC9QQUZLRnpCWmpZSFoyREZGZ0VQUDE5d0dTUWY2K1FCSXV5NWhXbEpqTXdBRmlnVEVMV0M4alVJUVJhQ1lUMEQ0RklNbkd3TWVRek1ETUlNUWdDcklkU0l1RDFhYkEyVXdNSWd4aUFMVzJFeGw0Mm1OZ1pHQmc0R0t3WWJCallIWng4d2xoRUVrdlNzMW1rTXRKTE1sajBHQmdBY295L1A4UEpMQ3hnQUFBV3hvTGF3QUFBQUFBQVFBQUFBRFZwQ2NJQUFBQUFObWNnK0VBQUFBQTJmdEpOQT09JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG4ifX0=`,"base64").toString("utf8"));return t(`metrics/setup > setup > success`),a}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return k[s]?.name??""},get mode(){return C[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(k))t.test(d)&&(s=e);if(l||(l="recent"),!(s in k))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in C))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!k[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > loaded ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(JSON.stringify(i)),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:`Spotify token must contain client id/secret and refresh token`};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with refresh token for spotify`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got new access token`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.response?.status)throw{error:{message:`API returned ${e.response.status}`},...o};throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i=i.slice(0,p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return console.debug(`metrics/compute/${e}/plugins > music > success`),{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw console.debug(e),{error:{message:`An error occured`}}}}async function o({login:e,q:t},{conf:r,data:n,rest:a,graphql:o,plugins:i},{s:l,pending:s,imports:d}){const p=n.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},c=d.imgb64(n.user.avatarUrl);n.plugins={};for(const c of Object.keys(d.plugins))s.push((async()=>{try{n.plugins[c]=await d.plugins[c]({login:e,q:t,imports:d,data:n,computed:p,rest:a,graphql:o},i[c])}catch(e){n.plugins[c]=e}finally{return{name:c,result:n.plugins[c]}}})());for(const c of n.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])p.repositories[e]+=c[e].totalCount;p.repositories.forks+=c.forkCount,c.licenseInfo&&(p.licenses.used[c.licenseInfo.spdxId]=(p.licenses.used[c.licenseInfo.spdxId]||0)+1)}p.diskUsage=`${d.bytes(1e3*n.user.repositories.totalDiskUsage)}`,p.licenses.favorite=Object.entries(p.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)||"",p.commits+=n.user.contributionsCollection.totalCommitContributions+n.user.contributionsCollection.restrictedContributionsCount;const u=(Date.now()-new Date(n.user.createdAt).getTime())/31536000000,m=_Mathfloor(u),g=_Mathceil(12*(u-m));p.registration=m?`${m} year${l(m)} ago`:`${g} month${l(g)} ago`,p.calendar=n.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),p.avatar=(await c)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",p.token.scopes=(await a.request("HEAD /")).headers["x-oauth-scopes"].split(", "),n.meta={version:r.package.version,author:r.package.author}}async function i({login:e,q:t},{graphql:r,rest:n,plugins:a,conf:o,die:i=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(JSON.stringify(t));const g=t.template||o.settings.templates.default,h=_Mathmax(0,+t.repositories)||o.settings.repositories||100,f=[],y=(e,t="")=>1 graphql query`),Object.assign(O,await r(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${h}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const m=w[g].default||w[g];await m({login:e,q:t},{conf:o,data:O,rest:n,graphql:r,plugins:a},{s:y,pending:f,imports:{plugins:_,url:E,imgb64:x,axios:v,puppeteer:T,format:l,bytes:d,shuffle:p,htmlescape:c,urlexpand:u}});const b=await Promise.all(f);if(o.settings.debug)for(const{name:e,result:t=null}of b)console.debug(`plugin ${e} ${t?t.error?"failed":"success":"ignored"} : ${JSON.stringify(t).replace(/^(.{888}).+/,"$1...")}`);if(i){const e=b.filter(({result:e=null})=>!!e?.error).length;if(e)throw new Error(`${e} error${y(e)} found...`)}}console.debug(`metrics/compute/${e} > render`);let P=await b.render(k,{...O,s:y,style:C,fonts:A},{async:!0});if(o.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new S({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(P);P=r}return console.debug(`metrics/compute/${e} > success`),P}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1":!0,'"':!0,"'":!0}){return e.replace(/&(?!(?:amp|lt|gt|quot|apos);)/g,t["&"]?"&":"&").replace(//g,t[">"]?">":">").replace(/"/g,t["\""]?""":"\"").replace(/'/g,t["'"]?"'":"'")}async function u(e){try{return(await v.get(e)).request.res.responseUrl}catch{return e}}function m({data:e,conf:t,q:r}){const n=e=>"object"==typeof e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{indents:{style:`########`}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]},tweets:{profile:{username:"########",verified:!1},list:[...Array("tweets.limit"in r?_Mathmax(+r["tweets.limit"]||0,0):2).fill(null).map(()=>({text:"###### ###### ####### ######".repeat(4),created_at:Date.now()}))]}}[e]??{})]))})}r.r(t);var g={};r.r(g),r.d(g,{default:()=>n});var h={};r.r(h),r.d(h,{default:()=>i});var f=r(35747),y=r(85622),b=r(58509),S=r(20485),x=r(67192),v=r(2390);const k={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},C={playlist:"Suggested tracks",recent:"Recently played"},_={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;const{user:{gists:a}}=await t(` query Gists { user(login: "${e}") { gists(last: 100) { @@ -63,7 +63,7 @@ module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math } } } - `),i=[];for(const e of o.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:s}=e.progress;i.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:s,total:a+o+s}})}return{list:i,totalCount:o.totalCount}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.limit":o=15}=r;const i="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",o=_Mathmax(1,_Mathmin(20,+o));let s=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const l=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > loaded ${await l.version()}`);const d=await l.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await d.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=d.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(!n.length)break;s.push(...n)}if(i&&(s=t.shuffle(s)),0 topics > keeping only ${o} topics`);const t=s.slice(o);s=s.slice(0,o),s.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}for(const r of s)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return{list:s}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[],s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){if(403===e.status)throw{error:{message:`Insufficient token rights`}};throw console.debug(e),{error:{message:`An error occured`}}}}},_={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments)},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments),t.raw=!0}};var w=r(34651),T=r(78835),E=r(3584),A=r.t(E),O=r(32882),P=r.t(O),L=r(29483),z=r.t(L);(async function(){const[e,t,n,a,o]=[P,z,A,m,g].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.8.0`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token");if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b={};let S=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)b[`base.${e}`]=S.includes(e);console.log(`Base parts | ${S.join(", ")||"(none)"}`);const x={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits")),from:+e.getInput("plugin_habits_from")||100},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))}};let v=Object.fromEntries(Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),x.pagespeed.enabled&&(x.pagespeed.token=e.getInput("plugin_pagespeed_token"),v[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed token | ${x.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${v["pagespeed.detailed"]}`)),x.languages.enabled){for(const t of["ignored","skipped"])v[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${v["languages.ignored"]}`),console.log(`Languages skipped repos | ${v["languages.skipped"]}`)}if(x.music.enabled){x.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])v[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${v["music.provider"]}`),console.log(`Music plugin mode | ${v["music.mode"]}`),console.log(`Music playlist | ${v["music.playlist"]}`),console.log(`Music tracks limit | ${v["music.limit"]}`),console.log(`Music token | ${x.music.token?"provided":"missing"}`)}if(x.posts.enabled){for(const t of["source","limit"])v[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts provider | ${v["posts.provider"]}`),console.log(`Posts limit | ${v["posts.limit"]}`)}if(x.isocalendar.enabled&&(v["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")??"half-year",console.log(`Isocalendar duration | ${v["isocalendar.duration"]}`)),x.topics.enabled){for(const t of["sort","limit"])v[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${v["topics.sort"]}`),console.log(`Topics limit | ${v["topics.limit"]}`)}if(x.projects.enabled){for(const t of["limit"])v[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${v["projects.limit"]}`)}const k=+e.getInput("repositories")||100;console.log(`Repositories to use | ${k}`);const C=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${C?"die":"ignore"}`),v={...v,base:!1,...b,repositories:k,template:d};const _=await o({login:f,q:v},{graphql:c,rest:u,plugins:x,conf:l,die:C});console.log(`Render | complete`);const w=i(e.getInput("verify"));if(console.log(`Verify SVG | ${w}`),w){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(_);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const T=i(e.getInput("dryrun"));if(T)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token");if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (unknown)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` + `),i=[];for(const e of o.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:s}=e.progress;i.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:s,total:a+o+s}})}return{list:i,totalCount:o.totalCount}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.limit":o=15}=r;const i="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",o=_Mathmax(1,_Mathmin(20,+o));let s=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const l=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > loaded ${await l.version()}`);const d=await l.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await d.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=d.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(!n.length)break;s.push(...n)}if(console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await l.close(),i&&(s=t.shuffle(s)),0 topics > keeping only ${o} topics`);const t=s.slice(o);s=s.slice(0,o),s.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}for(const r of s)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return{list:s}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[],s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){if(403===e.status)throw{error:{message:`Insufficient token rights`}};throw console.debug(e),{error:{message:`An error occured`}}}},tweets:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.tweets)return null;let{"tweets.limit":i=2}=n;i=_Mathmax(1,_Mathmin(10,+i));const s=r.user.twitterUsername;console.debug(`metrics/compute/${e}/plugins > tweets > loading twitter profile (@${s})`);const{data:{data:l=null}}=await t.axios.get(`https://api.twitter.com/2/users/by/username/${s}?user.fields=profile_image_url,verified`,{headers:{Authorization:`Bearer ${o}`}});console.debug(`metrics/compute/${e}/plugins > tweets > loading tweets`);const{data:{data:d=[]}}=await t.axios.get(`https://api.twitter.com/2/tweets/search/recent?query=from:${s}&tweet.fields=created_at&expansions=entities.mentions.username`,{headers:{Authorization:`Bearer ${o}`}});return l?.profile_image_url&&(console.debug(`metrics/compute/${e}/plugins > tweets > loading profile image`),l.profile_image=await t.imgb64(l.profile_image_url)),0 tweets > keeping only ${i} tweets`),d.splice(i)),await Promise.all(d.map(async r=>{r.mentions=r.entities?.mentions.map(({username:e})=>e)??[],console.debug(`metrics/compute/${e}/plugins > tweets > formatting tweet ${r.id}`),r.text=t.htmlescape(t.htmlescape(r.text,{"<":!0,">":!0}).replace(new RegExp(`@(${r.mentions.join("|")})`,"gi"),` @$1 `).replace(/(?#$1 `).replace(/\n/g,"
").replace(/https?:[/][/](t.co[/]\w+)/g,` $1 `),{"&":!0})})),{username:s,profile:l,list:d}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}}},w={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments)},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments),t.raw=!0}};var T=r(34651),E=r(78835),A=r(3584),O=r.t(A),P=r(32882),L=r.t(P),z=r(29483),R=r.t(z);(async function(){const[e,t,n,a,o]=[L,R,O,g,h].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.9.0-beta`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token");if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b={};let S=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)b[`base.${e}`]=S.includes(e);console.log(`Base parts | ${S.join(", ")||"(none)"}`);const x={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits")),from:+e.getInput("plugin_habits_from")||100},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))},tweets:{enabled:i(e.getInput("plugin_tweets"))}};let v=Object.fromEntries(Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),x.pagespeed.enabled&&(x.pagespeed.token=e.getInput("plugin_pagespeed_token"),v[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed token | ${x.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${v["pagespeed.detailed"]}`)),x.languages.enabled){for(const t of["ignored","skipped"])v[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${v["languages.ignored"]}`),console.log(`Languages skipped repos | ${v["languages.skipped"]}`)}if(x.music.enabled){x.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])v[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${v["music.provider"]}`),console.log(`Music plugin mode | ${v["music.mode"]}`),console.log(`Music playlist | ${v["music.playlist"]}`),console.log(`Music tracks limit | ${v["music.limit"]}`),console.log(`Music token | ${x.music.token?"provided":"missing"}`)}if(x.posts.enabled){for(const t of["source","limit"])v[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts provider | ${v["posts.provider"]}`),console.log(`Posts limit | ${v["posts.limit"]}`)}if(x.isocalendar.enabled&&(v["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")??"half-year",console.log(`Isocalendar duration | ${v["isocalendar.duration"]}`)),x.topics.enabled){for(const t of["sort","limit"])v[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${v["topics.sort"]}`),console.log(`Topics limit | ${v["topics.limit"]}`)}if(x.projects.enabled){for(const t of["limit"])v[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${v["projects.limit"]}`)}if(x.tweets.enabled){x.tweets.token=e.getInput("plugin_tweets_token")||null;for(const t of["limit"])v[`tweets.${t}`]=e.getInput(`plugin_tweets_${t}`)||null;console.log(`Twitter token | ${x.tweets.token?"provided":"missing"}`),console.log(`Tweets limit | ${v["tweets.limit"]}`)}const k=+e.getInput("repositories")||100;console.log(`Repositories to use | ${k}`);const C=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${C?"die":"ignore"}`),v={...v,base:!1,...b,repositories:k,template:d};const _=await o({login:f,q:v},{graphql:c,rest:u,plugins:x,conf:l,die:C});console.log(`Render | complete`);const w=i(e.getInput("verify"));if(console.log(`Verify SVG | ${w}`),w){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(_);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const T=i(e.getInput("dryrun"));if(T)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token");if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (unknown)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` query Sha { repository(owner: "${t.context.repo.owner}", name: "${t.context.repo.repo}") { object(expression: "${r}:${m}") { ... on Blob { oid } } @@ -172,4 +172,4 @@ If you think this is a bug, please report it on the Puppeteer issue tracker.`}\n * ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО * ОБЕСПЕЧЕНИЯ * ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. - */function n(e,t){return e.renameElem("use"),e.removeAttr("d"),e.removeAttr("stroke"),e.removeAttr("fill"),e.addAttr({name:"xlink:href",local:"xlink:href",prefix:"none",value:"#"+t}),delete e.pathJS,e}function a(e,t){if(!e.isEmpty())for(let r of e.content)t(r),a(r,t)}var o=r(71921);t.type="full",t.active=!1,t.description="Finds elements with the same d, fill, and stroke, and converts them to elements referencing a single def.",t.fn=function(e){const t=new Map;let r=0;const i=[];a(e,e=>{if(!e.isElem("path")||!e.hasAttr("d"))return;const a=e.attr("d").value,o=e.hasAttr("fill")&&e.attr("fill").value||"",s=e.hasAttr("stroke")&&e.attr("stroke").value||"",l=a+";s:"+s+";f:"+o,d=t.get(l);return d?void(!d.reused&&(d.reused=!0,!d.elem.hasAttr("id")&&d.elem.addAttr({name:"id",local:"id",prefix:"",value:"reuse-"+r++}),i.push(d.elem)),e=n(e,d.elem.attr("id").value)):void t.set(l,{elem:e,reused:!1})});const s=new o({elem:"defs",prefix:"",local:"defs",content:[],attrs:[]},e);e.content[0].spliceContent(0,0,s);for(let t of i){const e=t.style,r=t.class;delete t.style,delete t.class;const a=t.clone();t.style=e,t.class=r,a.removeAttr("transform"),s.spliceContent(0,0,a),t=n(t,a.attr("id").value),t.removeAttr("id")}return e}},17549:(e,t)=>{"use strict";t.type="perItem",t.active=!1,t.description="sorts element attributes (disabled by default)",t.params={order:["id","width","height","x","x1","x2","y","y1","y2","cx","cy","r","fill","stroke","marker","d","points"]},t.fn=function(e,t){var r=[],n={},o=t.order.length+1,i=t.xmlnsOrder||"front";e.elem&&(e.eachAttr(function(e){r.push(e)}),r.sort(function(e,r){if(e.prefix!=r.prefix){if("front"==i){if("xmlns"==e.prefix)return-1;if("xmlns"==r.prefix)return 1}return e.prefix{"use strict";t.type="perItem",t.active=!0,t.description="Sorts children of to improve compression",t.fn=function(e){if(e.isElem("defs")){if(e.content){var t=e.content.reduce(function(e,t){return t.elem in e?e[t.elem]++:e[t.elem]=1,e},{});e.content.sort(function(e,r){var n=t[r.elem]-t[e.elem];if(0!=n)return n;var a=r.elem.length-e.elem.length;return 0==a?e.elem==r.elem?0:e.elem>r.elem?-1:1:a})}return!0}}},16974:(e,t,r)=>{function n(e,t,r,a){return t===r?a(null,!0):void e.lstat(t,function(o,i){return o&&"ENOENT"!==o.code?a(o):o||i.isDirectory()?n(e,p.join(t,".."),r,a):void a(null,!1)})}function a(e,t,r){l(e,{fs:t.fs},function(e,n){!e&&n&&t.own?o(n,t.uid,t.gid,r):r(e)})}var o=r(28729),i=r(15283),s=r(537),l=r(23607),d=r(35747),p=r(85622),c=r(12087),u="win32"===c.platform(),m=function(){},g=function(e){return e},h=u?function(e){return e.replace(/\\/g,"/").replace(/[:?<>|]/g,"_")}:g,f=function(e,t,r,n,a,o){var s=a||["."];return function(a){if(!s.length)return a();var l=s.shift(),d=p.join(r,l);t.call(e,d,function(t,c){return t?a(t):c.isDirectory()?void e.readdir(d,function(e,t){if(e)return a(e);o&&t.sort();for(var d=0;d{var n=r(31669),a=r(96986),o=r(1759),i=r(99318).Writable,s=r(99318).PassThrough,l=function(){},d=function(e){return e&=511,e&&512-e},p=function(e,t){var r=new u(e,t);return r.end(),r},c=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},u=function(e,t){this._parent=e,this.offset=t,s.call(this,{autoDestroy:!1})};n.inherits(u,s),u.prototype.destroy=function(e){this._parent.destroy(e)};var m=function(e){if(!(this instanceof m))return new m(e);i.call(this,e),e=e||{},this._offset=0,this._buffer=a(),this._missing=0,this._partial=!1,this._onparse=l,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},s=function(e){return t._locked=!1,e?t.destroy(e):void(!t._stream&&n())},g=function(){t._stream=null;var e=d(t._header.size);e?t._parse(e,h):t._parse(512,x),t._locked||n()},h=function(){t._buffer.consume(d(t._header.size)),t._parse(512,x),n()},f=function(){var e=t._header.size;t._paxGlobal=o.decodePax(r.slice(0,e)),r.consume(e),g()},y=function(){var e=t._header.size;t._pax=o.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),g()},b=function(){var n=t._header.size;this._gnuLongPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),g()},S=function(){var n=t._header.size;this._gnuLongLinkPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),g()},x=function(){var a=t._offset,i;try{i=t._header=o.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return(r.consume(512),!i)?(t._parse(512,x),void n()):"gnu-long-path"===i.type?(t._parse(i.size,b),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,S),void n()):"pax-global-header"===i.type?(t._parse(i.size,f),void n()):"pax-header"===i.type?(t._parse(i.size,y),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=c(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?void(t._stream=new u(t,a),t.emit("entry",i,t._stream,s),t._parse(i.size,g),n()):(t._parse(512,x),void t.emit("entry",i,p(t,a),s)))};this._onheader=x,this._parse(512,x)};n.inherits(m,i),m.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},m.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},m.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=l,this._overflow?this._write(this._overflow,void 0,e):e()}},m.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(i=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=i,this._onparse()}},m.prototype._final=function(e){return this._partial?this.destroy(new Error("Unexpected end of data")):void e()},e.exports=m},1759:(e,t)=>{function r(e){var t;if(128===e[0])t=!0;else if(255===e[0])t=!1;else return null;for(var r=[],n=e.length-1,a;0=t)?t:0<=e?e:(e+=t,0<=e?e:0):r},h=function(e){return 0===e?"file":1===e?"link":2===e?"symlink":3===e?"character-device":4===e?"block-device":5===e?"directory":6===e?"fifo":7===e?"contiguous-file":72===e?"pax-header":55===e?"pax-global-header":27===e?"gnu-long-link-path":28===e||30===e?"gnu-long-path":null},f=function(e){return"file"===e?0:"link"===e?1:"symlink"===e?2:"character-device"===e?3:"block-device"===e?4:"directory"===e?5:"fifo"===e?6:"contiguous-file"===e?7:"pax-header"===e?72:0},y=function(e,t,r,n){for(;rr;r++)t+=e[r];for(var n=156;512>n;n++)t+=e[n];return t},S=function(e,t){return e=e.toString(8),e.length>t?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "},x=function(e,t,n){if(e=e.slice(t,t+n),t=0,128&e[t])return r(e);for(;t=_Mathpow(10,n)&&n++,r+n+e};t.decodeLongPath=function(e,t){return v(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=k(" path="+e.name+"\n")),e.linkname&&(t+=k(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=k(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r{t.extract=r(62081),t.pack=r(85901)},78832:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},8652:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(44347),l=r(53519);r(16095)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(4114);r(16095)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},44347:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(8652),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(8652),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){I("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(I("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;I("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(I("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;I("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;I("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(I("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return I("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;I("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(8652),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(8652);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new I("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(68997),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},63935:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},42719:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},68997:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(68997)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(78832).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(78832).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},95989:(e,t,r)=>{e.exports=r(92413)},99318:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(44347),t.Stream=n||t,t.Readable=t,t.Writable=r(53519),t.Duplex=r(8652),t.Transform=r(4114),t.PassThrough=r(549),t.finished=r(68997),t.pipeline=r(3477))},85901:(e,t,r)=>{function n(e){switch(e&a.S_IFMT){case a.S_IFBLK:return"block-device";case a.S_IFCHR:return"character-device";case a.S_IFDIR:return"directory";case a.S_IFIFO:return"fifo";case a.S_IFLNK:return"symlink";}return"file"}var a=r(21760),o=r(10852),i=r(16095),s=Buffer.alloc,l=r(99318).Readable,d=r(99318).Writable,p=r(24304).StringDecoder,c=r(1759),u=parseInt("755",8),m=parseInt("644",8),g=s(1024),h=function(){},f=function(e,t){t&=511,t&&e.push(g.slice(0,512-t))},y=function(e){d.call(this),this.written=0,this._to=e,this._destroyed=!1};i(y,d),y.prototype._write=function(e,t,r){return this.written+=e.length,this._to.push(e)?r():void(this._to._drain=r)},y.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var b=function(){d.call(this),this.linkname="",this._decoder=new p("utf-8"),this._destroyed=!1};i(b,d),b.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},b.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var S=function(){d.call(this),this._destroyed=!1};i(S,d),S.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},S.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var x=function(e){return this instanceof x?void(l.call(this,e),this._drain=h,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null):new x(e)};i(x,l),x.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){"function"==typeof t&&(r=t,t=null),r||(r=h);var a=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=n(e.mode)),e.mode||(e.mode="directory"===e.type?u:m),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var i=this.push(t);return f(a,e.size),i?process.nextTick(r):this._drain=r,new S}if("symlink"===e.type&&!e.linkname){var s=new b;return o(s,function(t){return t?(a.destroy(),r(t)):void(e.linkname=s.linkname,a._encode(e),r())}),s}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new S;var l=new y(this);return this._stream=l,o(l,function(t){return a._stream=null,t?(a.destroy(),r(t)):l.written===e.size?void(f(a,e.size),a._finalizing&&a.finalize(),r()):(a.destroy(),r(new Error("size mismatch")))}),l}},x.prototype.finalize=function(){return this._stream?void(this._finalizing=!0):void(this._finalized||(this._finalized=!0,this.push(g),this.push(null)))},x.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},x.prototype._encode=function(e){if(!e.pax){var t=c.encode(e);if(t)return void this.push(t)}this._encodePax(e)},x.prototype._encodePax=function(e){var t=c.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(c.encode(r)),this.push(t),f(this,t.length),r.size=e.size,r.type=e.type,this.push(c.encode(r))},x.prototype._read=function(){var e=this._drain;this._drain=h,e()},e.exports=x},82309:(e,t,r)=>{function n(e,t,r){function n(){for(;l.length&&!p.paused;){var e=l.shift();if(null===e)return p.emit("end");p.emit("data",e)}}function o(){p.writable=!1,t.call(p),!p.readable&&p.autoDestroy&&p.destroy()}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var i=!1,s=!1,l=[],d=!1,p=new a;return p.readable=p.writable=!0,p.paused=!1,p.autoDestroy=!(r&&!1===r.autoDestroy),p.write=function(t){return e.call(this,t),!p.paused},p.queue=p.push=function(e){return d?p:(null===e&&(d=!0),l.push(e),n(),p)},p.on("end",function(){p.readable=!1,!p.writable&&p.autoDestroy&&process.nextTick(function(){p.destroy()})}),p.end=function(e){if(!i)return i=!0,arguments.length&&p.write(e),o(),p},p.destroy=function(){if(!s)return s=!0,i=!0,l.length=0,p.writable=p.readable=!1,p.emit("close"),p},p.pause=function(){if(!p.paused)return p.paused=!0,p},p.resume=function(){return p.paused&&(p.paused=!1,p.emit("resume")),n(),p.paused||p.emit("drain"),p},p}var a=r(92413);t=e.exports=n,n.through=n},34603:(e,t,r)=>{e.exports=r(41296)},41296:(e,t,r)=>{"use strict";function n(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||d.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,a){for(var s=o(r,n,a),l=0,d=t.requests.length,p;l=this.maxSockets?void a.requests.push(s):void a.createSocket(s,function(t){function r(){a.emit("free",t,s)}function n(){a.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)})},n.prototype.createSocket=function(e,t){function r(r,n,i){if(l.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){g("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var s=new Error("tunneling socket could not be established, statusCode="+r.statusCode);return s.code="ECONNRESET",e.request.emit("error",s),void a.removeSocket(o)}if(0{var n=r(82309),a=r(9961),o=r(17736);e.exports=function(){function e(e){if(!s)return s=a.header(d),p=0,!0;var t=1e5*s,r=new Int32Array(t),n=[];return p=a.decompress(d,function(e){n.push(e)},r,t,p),null===p?(s=0,!1):(e(Buffer.from(n)),!0)}function t(t){if(!l)try{return e(function(e){t.queue(e),null!==e&&(c+=e.length)})}catch(r){return t.emit("error",r),l=!0,!1}}var r=[],i=0,s=0,l=!1,d=null,p=null,c=0;return n(function(e){for(r.push(e),i+=e.length,null===d&&(d=o(function(){return r.shift()}));!l&&i-d.bytesRead+1>=(25e3+1e5*s||4);)t(this)},function(){for(;!l&&d&&i>d.bytesRead;)t(this);l||(null!==p&&this.emit("error",new Error("input stream ended prematurely")),this.queue(null))})}},17736:e=>{var t=[0,1,3,7,15,31,63,127,255];e.exports=function(e){var r=0,a=0,o=e(),i=function(s){if(null===s&&0!=r)return r=0,void a++;for(var l=0;0=o.length&&(a=0,o=e());var d=8-r;0===r&&0=d?(l<<=d,l|=t[d]&o[a++],r=0,s-=d):(l<<=s,l|=(o[a]&t[s]<<8-s-r)>>8-s-r,r+=s,s=0)}return l};return i.bytesRead=0,i}},9961:e=>{function t(e){this.name="Bzip2Error",this.message=e,this.stack=new Error().stack}t.prototype=new Error;var r={Error:function(e){throw new t(e)}},n={};n.Bzip2Error=t,n.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],n.array=function(e){var t=0,r=0,a=[0,1,3,7,15,31,63,127,255];return function(o){for(var i=0,s;0=s?(i<<=s,i|=a[s]&e[r++],t=0,o-=s):(i<<=o,i|=(e[r]&a[o]<<8-o-t)>>8-o-t,t+=o,o=0);return i}},n.simple=function(e,t){var r=n.array(e),a=n.header(r),o=!1,i=1e5*a,s=new Int32Array(i);do o=n.decompress(r,t,s,i);while(!o)},n.header=function(e){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),4348520!=e(24)&&r.Error("No magic number found");var t=e(8)-48;return(1>t||9f;f++)g+=e(8).toString(16);if("177245385090"==g){var y=0|e(32);return y!==s&&r.Error("Error in bzip2: crc32 do not match"),e(null),null}"314159265359"!=g&&r.Error("eek not valid bzip data");var b=0|e(32);e(1)&&r.Error("unsupported obsolete version");var S=e(24);S>o&&r.Error("Initial position larger than buffer size");var x=e(16),v=0;for(f=0;16>f;f++)if(x&1<<15-f){var C=e(16);for(T=0;16>T;T++)C&1<<15-T&&(this.symToByte[v++]=16*f+T)}var _=e(3);(2>_||6<_)&&r.Error("another error");var w=e(15);0==w&&r.Error("meh");for(var f=0;f<_;f++)this.mtfSymbol[f]=f;for(var f=0;f=_&&r.Error("whoops another error");for(var E=this.mtfSymbol[T],C=T-1;0<=C;C--)this.mtfSymbol[C+1]=this.mtfSymbol[C];this.mtfSymbol[0]=E,this.selectors[f]=E}for(var A=v+2,O=[],P=new Uint8Array(d),L=new Uint16Array(l+1),T=0,z;T<_;T++){x=e(5);for(var f=0;fx||x>l)&&r.Error("I gave up a while ago on writing error messages"),!!e(1);)e(1)?x--:x++;P[f]=x}var R,M;R=M=P[0];for(var f=1;fM?M=P[f]:P[f]f;f++)this.mtfSymbol[f]=f,this.byteCount[f]=0;var B,N,A,D;for(B=N=A=D=0;;){for(A--||(A=u-1,D>=w&&r.Error("meow i'm a kitty, that's an error"),z=O[this.selectors[D++]],I=z.base,W=z.limit),f=z.minLen,T=e(f);f>z.maxLen&&r.Error("rawr i'm a dinosaur"),!(T<=W[f]);)f++,T=T<<1|e(1);T-=I[f],(0>T||T>=d)&&r.Error("moo i'm a cow");var F=z.permute[T];if(F==p||F==c){B||(B=1,x=0),x+=F==p?B:2*B,B<<=1;continue}if(B)for(B=0,N+x>o&&r.Error("Boom."),E=this.symToByte[this.mtfSymbol[0]],this.byteCount[E]+=x;x--;)a[N++]=E;if(F>v)break;N>=o&&r.Error("I can't think of anything. Error"),f=F-1,E=this.mtfSymbol[f];for(var C=f-1;0<=C;C--)this.mtfSymbol[C+1]=this.mtfSymbol[C];this.mtfSymbol[0]=E,E=this.symToByte[E],this.byteCount[E]++,a[N++]=E}(0>S||S>=N)&&r.Error("I'm a monkey and I'm throwing something at someone, namely you");for(var T=0,f=0;256>f;f++)C=T+this.byteCount[f],this.byteCount[f]=T,T=C;for(var f=0;f>=8,H=-1),N=N;for(var V,K,Y;N;){for(N--,K=U,G=a[G],U=255&G,G>>=8,3==H++?(V=U,Y=K,U=-1):(V=1,Y=U);V--;)m=4294967295&(m<<8^this.crcTable[255&(m>>24^Y)]),n(Y);U!=K&&(H=0)}return m=(-1^m)>>>0,(0|m)!=(0|b)&&r.Error("Error in bzip2: crc32 do not match"),s=4294967295&(m^(s<<1|s>>>31)),s},e.exports=n},1857:(e,t)=>{"use strict";function r(){return"object"==typeof navigator&&"userAgent"in navigator?navigator.userAgent:"object"==typeof process&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}Object.defineProperty(t,"__esModule",{value:!0}),t.getUserAgent=r},47937:e=>{var t=/[\'\"]/;e.exports=function(e){return e?(t.test(e.charAt(0))&&(e=e.substr(1)),t.test(e.charAt(e.length-1))&&(e=e.substr(0,e.length-1)),e):""}},65941:(e,t,r)=>{e.exports=r(31669).deprecate},42884:e=>{function t(e,r){function n(){for(var t=Array(arguments.length),r=0;r{"use strict";const n=r(54058);n.createWebSocketStream=r(94477),n.Server=r(24256),n.Receiver=r(53721),n.Sender=r(77488),e.exports=n},7529:(t,r,n)=>{"use strict";function a(e,t){if(0===e.length)return d;if(1===e.length)return e[0];const r=Buffer.allocUnsafe(t);let n=0;for(let a=0;ai?o(e,t,n,a,i):r.mask(e,t,n,a,i)},toArrayBuffer:s,toBuffer:l,unmask(e,t){32>e.length?i(e,t):r.unmask(e,t)}}}catch(r){t.exports={concat:a,mask:o,toArrayBuffer:s,toBuffer:l,unmask:i}}},587:e=>{"use strict";e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}},13137:e=>{"use strict";class t{constructor(e,t){this.target=t,this.type=e}}class r extends t{constructor(e,t){super("message",t),this.data=e}}class n extends t{constructor(e,t,r){super("close",r),this.wasClean=r._closeFrameReceived&&r._closeFrameSent,this.reason=t,this.code=e}}class a extends t{constructor(e){super("open",e)}}class o extends t{constructor(e,t){super("error",t),this.message=e.message,this.error=e}}e.exports={addEventListener(e,t,i){function s(e){t.call(this,new r(e,this))}function l(e,r){t.call(this,new n(e,r,this))}function d(e){t.call(this,new o(e,this))}function p(){t.call(this,new a(this))}if("function"==typeof t){const r=i&&i.once?"once":"on";"message"===e?(s._listener=t,this[r](e,s)):"close"===e?(l._listener=t,this[r](e,l)):"error"===e?(d._listener=t,this[r](e,d)):"open"===e?(p._listener=t,this[r](e,p)):this[r](e,t)}},removeEventListener(e,t){const r=this.listeners(e);for(let n=0;n{"use strict";function t(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];e.exports={format:function(e){return Object.keys(e).map(t=>{let r=e[t];return Array.isArray(r)||(r=[r]),r.map(e=>[t].concat(Object.keys(e).map(t=>{let r=e[t];return Array.isArray(r)||(r=[r]),r.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){const n=Object.create(null);if(void 0===e||""===e)return n;let a=Object.create(null),o=!1,s=!1,l=!1,d=-1,p=-1,c=0,u,m;for(;c{"use strict";const t=Symbol("kDone"),r=Symbol("kRun");e.exports=class e{constructor(e){this[t]=()=>{this.pending--,this[r]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[r]()}[r](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[t])}}}},4162:(e,t,r)=>{"use strict";function n(e){this[h].push(e),this[m]+=e.length}function a(e){return this[m]+=e.length,1>this[u]._maxPayload||this[m]<=this[u]._maxPayload?void this[h].push(e):void(this[f]=new RangeError("Max payload size exceeded"),this[f][d]=1009,this.removeListener("data",a),this.reset())}function o(e){this[u]._inflate=null,e[d]=1007,this[g](e)}const i=r(78761),s=r(7529),l=r(23483),{kStatusCode:d,NOOP:p}=r(587),c=Buffer.from([0,0,255,255]),u=Symbol("permessage-deflate"),m=Symbol("total-length"),g=Symbol("callback"),h=Symbol("buffers"),f=Symbol("error");let y;class b{constructor(e,t,r){if(this._maxPayload=0|r,this._options=e||{},this._threshold=void 0===this._options.threshold?1024:this._options.threshold,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!y){const e=void 0===this._options.concurrencyLimit?10:this._options.concurrencyLimit;y=new l(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[g];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,r=e.find(e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(r.server_no_context_takeover=!0),t.clientNoContextTakeover&&(r.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(r.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?r.client_max_window_bits=t.clientMaxWindowBits:(!0===r.client_max_window_bits||!1===t.clientMaxWindowBits)&&delete r.client_max_window_bits,r}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error("Unexpected parameter \"client_no_context_takeover\"");if(!t.client_max_window_bits)"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error("Unexpected or invalid parameter \"client_max_window_bits\"");return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let r=e[t];if(1e||15e||15{this._decompress(e,t,(e,t)=>{n(),r(e,t)})})}compress(e,t,r){y.add(n=>{this._compress(e,t,(e,t)=>{n(),r(e,t)})})}_decompress(e,t,r){const n=this._isServer?"client":"server";if(!this._inflate){const e=`${n}_max_window_bits`,t="number"==typeof this.params[e]?this.params[e]:i.Z_DEFAULT_WINDOWBITS;this._inflate=i.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[u]=this,this._inflate[m]=0,this._inflate[h]=[],this._inflate.on("error",o),this._inflate.on("data",a)}this._inflate[g]=r,this._inflate.write(e),t&&this._inflate.write(c),this._inflate.flush(()=>{const e=this._inflate[f];if(e)return this._inflate.close(),this._inflate=null,void r(e);const a=s.concat(this._inflate[h],this._inflate[m]);t&&this.params[`${n}_no_context_takeover`]?(this._inflate.close(),this._inflate=null):(this._inflate[m]=0,this._inflate[h]=[]),r(null,a)})}_compress(e,t,r){const a=this._isServer?"server":"client";if(!this._deflate){const e=`${a}_max_window_bits`,t="number"==typeof this.params[e]?this.params[e]:i.Z_DEFAULT_WINDOWBITS;this._deflate=i.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[m]=0,this._deflate[h]=[],this._deflate.on("error",p),this._deflate.on("data",n)}this._deflate[g]=r,this._deflate.write(e),this._deflate.flush(i.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=s.concat(this._deflate[h],this._deflate[m]);t&&(e=e.slice(0,e.length-4)),this._deflate[g]=null,t&&this.params[`${a}_no_context_takeover`]?(this._deflate.close(),this._deflate=null):(this._deflate[m]=0,this._deflate[h]=[]),r(null,e)})}}e.exports=b},53721:(e,t,r)=>{"use strict";function n(e,t,r,a){const o=new e(r?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(o,n),o[l]=a,o}const{Writable:a}=r(92413),o=r(4162),{BINARY_TYPES:i,EMPTY_BUFFER:s,kStatusCode:l,kWebSocket:d}=r(587),{concat:p,toArrayBuffer:c,unmask:u}=r(7529),{isValidStatusCode:m,isValidUTF8:g}=r(62015),h=0,f=1,y=2,b=3,S=4;e.exports=class e extends a{constructor(e,t,r,n){super(),this._binaryType=e||i[0],this[d]=void 0,this._extensions=t||{},this._isServer=!!r,this._maxPayload=0|n,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=h,this._loop=!1}_write(e,t,r){return 8===this._opcode&&this._state==h?r():void(this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(r))}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=r.length?t.set(this._buffers.shift(),n):(t.set(new Uint8Array(r.buffer,r.byteOffset,e),n),this._buffers[0]=r.slice(e)),e-=r.length}while(0this._bufferedBytes)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,n(RangeError,"RSV2 and RSV3 must be clear",!0,1002);const t=64==(64&e[0]);if(t&&!this._extensions[o.extensionName])return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(t)return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,n(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,n(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=t}else if(7this._opcode){if(!this._fin)return this._loop=!1,n(RangeError,"FIN must be set",!0,1002);if(t)return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(125this._bufferedBytes?void(this._loop=!1):(this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength())}getPayloadLength64(){if(8>this._bufferedBytes)return void(this._loop=!1);const e=this.consume(8),t=e.readUInt32BE(0);return t>_Mathpow(2,21)-1?(this._loop=!1,n(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=t*_Mathpow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){return this._payloadLength&&8>this._opcode&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&0this._bufferedBytes?void(this._loop=!1):void(this._mask=this.consume(4),this._state=S)}getData(e){let t=s;if(this._payloadLength){if(this._bufferedBytes{if(e)return t(e);if(r.length){if(this._messageLength+=r.length,this._messageLength>this._maxPayload&&0{"use strict";const{randomFillSync:n}=r(76417),a=r(4162),{EMPTY_BUFFER:o}=r(587),{isValidStatusCode:i}=r(62015),{mask:s,toBuffer:l}=r(7529),d=Buffer.alloc(4);class p{constructor(e,t){this._extensions=t||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){const r=t.mask&&t.readOnly;let a=t.mask?6:2,o=e.length;65536<=e.length?(a+=8,o=127):125=o._threshold),this._compress=s):(s=!1,i=0),t.fin&&(this._firstFragment=!0),o){const e={fin:t.fin,rsv1:s,opcode:i,mask:t.mask,readOnly:l.readOnly};this._deflating?this.enqueue([this.dispatch,n,this._compress,e,r]):this.dispatch(n,this._compress,e,r)}else this.sendFrame(p.frame(n,{fin:t.fin,rsv1:!1,opcode:i,mask:t.mask,readOnly:l.readOnly}),r)}dispatch(e,t,r,n){if(!t)return void this.sendFrame(p.frame(e,r),n);const o=this._extensions[a.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,o.compress(e,r.fin,(t,a)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof n&&n(e);for(let t=0;t{"use strict";function n(e){e.emit("close")}function a(){!this.destroyed&&this._writableState.finished&&this.destroy()}function o(e){this.removeListener("error",o),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}const{Duplex:i}=r(92413);e.exports=function(e,t){function r(){s&&e._socket.resume()}let s=!0;e.readyState===e.CONNECTING?e.once("open",function(){e._receiver.removeAllListeners("drain"),e._receiver.on("drain",r)}):(e._receiver.removeAllListeners("drain"),e._receiver.on("drain",r));const l=new i({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(t){l.push(t)||(s=!1,e._socket.pause())}),e.once("error",function(e){l.destroyed||l.destroy(e)}),e.once("close",function(){l.destroyed||l.push(null)}),l._destroy=function(t,r){if(e.readyState===e.CLOSED)return r(t),void process.nextTick(n,l);let a=!1;e.once("error",function(e){a=!0,r(e)}),e.once("close",function(){a||r(t),process.nextTick(n,l)}),e.terminate()},l._final=function(t){return e.readyState===e.CONNECTING?void e.once("open",function(){l._final(t)}):void(null===e._socket||(e._socket._writableState.finished?(t(),l._readableState.endEmitted&&l.destroy()):(e._socket.once("finish",function(){t()}),e.close())))},l._read=function(){e.readyState!==e.OPEN||s||(s=!0,!e._receiver._writableState.needDrain&&e._socket.resume())},l._write=function(t,r,n){return e.readyState===e.CONNECTING?void e.once("open",function(){l._write(t,r,n)}):void e.send(t,n)},l.on("end",a),l.on("error",o),l}},62015:(e,t,r)=>{"use strict";try{const e=r(83914);t.isValidUTF8="object"==typeof e?e.Validation.isValidUTF8:e}catch(r){t.isValidUTF8=()=>!0}t.isValidStatusCode=e=>1e3<=e&&1014>=e&&1004!==e&&1005!==e&&1006!==e||3e3<=e&&4999>=e},24256:(e,t,r)=>{"use strict";function n(e,t){for(const r of Object.keys(t))e.on(r,t[r]);return function(){for(const r of Object.keys(t))e.removeListener(r,t[r])}}function a(e){e.emit("close")}function o(){this.destroy()}function i(e,t,r,n){e.writable&&(r=r||p[t],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...n},e.write(`HTTP/1.1 ${t} ${p[t]}\r\n`+Object.keys(n).map(e=>`${e}: ${n[e]}`).join("\r\n")+"\r\n\r\n"+r)),e.removeListener("error",o),e.destroy()}const s=r(28614),{createHash:l}=r(76417),{createServer:d,STATUS_CODES:p}=r(98605),c=r(4162),u=r(54058),{format:m,parse:g}=r(75915),{GUID:h,kWebSocket:f}=r(587);e.exports=class e extends s{constructor(e,t){if(super(),e={maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e},null==e.port&&!e.server&&!e.noServer)throw new TypeError("One of the \"port\", \"server\", or \"noServer\" options must be specified");if(null==e.port?e.server&&(this._server=e.server):(this._server=d((e,t)=>{const r=p[426];t.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"}),t.end(r)}),this._server.listen(e.port,e.host,e.backlog,t)),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=n(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,r,n)=>{this.handleUpgrade(t,r,n,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e}address(){if(this.options.noServer)throw new Error("The server is operating in \"noServer\" mode");return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this.clients)for(const e of this.clients)e.terminate();const t=this._server;return t&&(this._removeListeners(),this._removeListeners=this._server=null,null!=this.options.port)?void t.close(()=>this.emit("close")):void process.nextTick(a,this)}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?"),r=-1===t?e.url:e.url.slice(0,t);if(r!==this.options.path)return!1}return!0}handleUpgrade(e,t,r,n){t.on("error",o);const a=void 0!==e.headers["sec-websocket-key"]&&e.headers["sec-websocket-key"].trim(),s=+e.headers["sec-websocket-version"],l={};if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!a||!/^[+/0-9A-Za-z]{22}==$/.test(a)||8!==s&&13!==s||!this.shouldHandle(e))return i(t,400);if(this.options.perMessageDeflate){const r=new c(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const t=g(e.headers["sec-websocket-extensions"]);t[c.extensionName]&&(r.accept(t[c.extensionName]),l[c.extensionName]=r)}catch(e){return i(t,400)}}if(this.options.verifyClient){const o={origin:e.headers[`${8===s?"sec-websocket-origin":"origin"}`],secure:!!(e.connection.authorized||e.connection.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(o,(o,s,d,p)=>o?void this.completeUpgrade(a,l,e,t,r,n):i(t,s||401,d,p));if(!this.options.verifyClient(o))return i(t,401)}this.completeUpgrade(a,l,e,t,r,n)}completeUpgrade(e,t,r,n,a,i){if(!n.readable||!n.writable)return n.destroy();if(n[f])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");const s=l("sha1").update(e+h).digest("base64"),d=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${s}`],p=new u(null);let g=r.headers["sec-websocket-protocol"];if(g&&(g=g.trim().split(/ *, */),g=this.options.handleProtocols?this.options.handleProtocols(g,r):g[0],g&&(d.push(`Sec-WebSocket-Protocol: ${g}`),p._protocol=g)),t[c.extensionName]){const e=t[c.extensionName].params,r=m({[c.extensionName]:[e]});d.push(`Sec-WebSocket-Extensions: ${r}`),p._extensions=t}this.emit("headers",d,r),n.write(d.concat("\r\n").join("\r\n")),n.removeListener("error",o),p.setSocket(n,a,this.options.maxPayload),this.clients&&(this.clients.add(p),p.on("close",()=>this.clients.delete(p))),i(p,r)}}},54058:(e,t,r)=>{"use strict";function n(e,t,r,s){const l={protocolVersion:G[1],maxPayload:104857600,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,createConnection:void 0,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:void 0,host:void 0,path:void 0,port:void 0};if(!G.includes(l.protocolVersion))throw new RangeError(`Unsupported protocol version: ${l.protocolVersion} `+`(supported versions: ${G.join(", ")})`);let d;t instanceof T?(d=t,e._url=t.href):(d=new T(t),e._url=t);const p="ws+unix:"===d.protocol;if(!d.host&&(!p||!d.pathname))throw new Error(`Invalid URL: ${e.url}`);const c="wss:"===d.protocol||"https:"===d.protocol,u=c?443:80,m=_(16).toString("base64"),g=c?x.get:v.get;let h;if(l.createConnection=c?o:a,l.defaultPort=l.defaultPort||u,l.port=d.port||u,l.host=d.hostname.startsWith("[")?d.hostname.slice(1,-1):d.hostname,l.headers={"Sec-WebSocket-Version":l.protocolVersion,"Sec-WebSocket-Key":m,Connection:"Upgrade",Upgrade:"websocket",...l.headers},l.path=d.pathname+d.search,l.timeout=l.handshakeTimeout,l.perMessageDeflate&&(h=new E(!0===l.perMessageDeflate?{}:l.perMessageDeflate,!1,l.maxPayload),l.headers["Sec-WebSocket-Extensions"]=B({[E.extensionName]:h.offer()})),r&&(l.headers["Sec-WebSocket-Protocol"]=r),l.origin&&(13>l.protocolVersion?l.headers["Sec-WebSocket-Origin"]=l.origin:l.headers.Origin=l.origin),(d.username||d.password)&&(l.auth=`${d.username}:${d.password}`),p){const e=l.path.split(":");l.socketPath=e[0],l.path=e[1]}let f=e._req=g(l);l.timeout&&f.on("timeout",()=>{i(e,f,"Opening handshake has timed out")}),f.on("error",t=>{e._req.aborted||(f=e._req=null,e._readyState=U.CLOSING,e.emit("error",t),e.emitClose())}),f.on("response",a=>{const o=a.headers.location,d=a.statusCode;if(o&&l.followRedirects&&300<=d&&400>d){if(++e._redirects>l.maxRedirects)return void i(e,f,"Maximum redirects exceeded");f.abort();const a=new T(o,t);n(e,a,r,s)}else e.emit("unexpected-response",f,a)||i(e,f,`Unexpected server response: ${a.statusCode}`)}),f.on("upgrade",(t,n,a)=>{if(e.emit("upgrade",t),e.readyState!==U.CONNECTING)return;f=e._req=null;const o=w("sha1").update(m+z).digest("base64");if(t.headers["sec-websocket-accept"]!==o)return void i(e,n,"Invalid Sec-WebSocket-Accept header");const s=t.headers["sec-websocket-protocol"],d=(r||"").split(/, */);let p;if(!r&&s?p="Server sent a subprotocol but none was requested":r&&!s?p="Server sent no subprotocol":s&&!d.includes(s)&&(p="Server sent an invalid subprotocol"),p)return void i(e,n,p);if(s&&(e._protocol=s),h)try{const r=N(t.headers["sec-websocket-extensions"]);r[E.extensionName]&&(h.accept(r[E.extensionName]),e._extensions[E.extensionName]=h)}catch(t){return void i(e,n,"Invalid Sec-WebSocket-Extensions header")}e.setSocket(n,a,l.maxPayload)})}function a(e){return e.path=e.socketPath,k.connect(e)}function o(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=e.host),C.connect(e)}function i(e,t,r){e._readyState=U.CLOSING;const n=new Error(r);Error.captureStackTrace(n,i),t.setHeader?(t.abort(),t.once("abort",e.emitClose.bind(e)),e.emit("error",n)):(t.destroy(n),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function s(e,t,r){if(t){const r=D(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(r){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${F[e.readyState]})`);r(t)}}function l(e,t){const r=this[M];r._socket.removeListener("data",f),r._socket.resume(),r._closeFrameReceived=!0,r._closeMessage=t,r._closeCode=e,1005===e?r.close():r.close(e,t)}function d(){this[M]._socket.resume()}function p(e){const t=this[M];t._socket.removeListener("data",f),t._readyState=U.CLOSING,t._closeCode=e[R],t.emit("error",e),t._socket.destroy()}function c(){this[M].emitClose()}function u(e){this[M].emit("message",e)}function m(e){const t=this[M];t.pong(e,!t._isServer,I),t.emit("ping",e)}function g(e){this[M].emit("pong",e)}function h(){const e=this[M];this.removeListener("close",h),this.removeListener("end",y),e._readyState=U.CLOSING,e._socket.read(),e._receiver.end(),this.removeListener("data",f),this[M]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",c),e._receiver.on("finish",c))}function f(e){this[M]._receiver.write(e)||this.pause()}function y(){const e=this[M];e._readyState=U.CLOSING,e._receiver.end(),this.end()}function b(){const e=this[M];this.removeListener("error",b),this.on("error",I),e&&(e._readyState=U.CLOSING,this.destroy())}const S=r(28614),x=r(57211),v=r(98605),k=r(11631),C=r(4016),{randomBytes:_,createHash:w}=r(76417),{URL:T}=r(78835),E=r(4162),A=r(53721),O=r(77488),{BINARY_TYPES:P,EMPTY_BUFFER:L,GUID:z,kStatusCode:R,kWebSocket:M,NOOP:I}=r(587),{addEventListener:W,removeEventListener:q}=r(13137),{format:B,parse:N}=r(75915),{toBuffer:D}=r(7529),F=["CONNECTING","OPEN","CLOSING","CLOSED"],G=[8,13];class U extends S{constructor(e,t,r){super(),this._binaryType=P[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=U.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null===e?this._isServer=!0:(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(t)?t=t.join(", "):"object"==typeof t&&null!==t&&(r=t,t=void 0),n(this,e,t,r))}get binaryType(){return this._binaryType}set binaryType(e){P.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,r){const n=new A(this.binaryType,this._extensions,this._isServer,r);this._sender=new O(e,this._extensions),this._receiver=n,this._socket=e,n[M]=this,e[M]=this,n.on("conclude",l),n.on("drain",d),n.on("error",p),n.on("message",u),n.on("ping",m),n.on("pong",g),e.setTimeout(0),e.setNoDelay(),0{e||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),30000))}}ping(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");return"function"==typeof e?(r=e,e=t=void 0):"function"==typeof t&&(r=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===U.OPEN?void(void 0===t&&(t=!this._isServer),this._sender.ping(e||L,t,r)):void s(this,e,r)}pong(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");return"function"==typeof e?(r=e,e=t=void 0):"function"==typeof t&&(r=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===U.OPEN?void(void 0===t&&(t=!this._isServer),this._sender.pong(e||L,t,r)):void s(this,e,r)}send(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(r=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==U.OPEN)return void s(this,e,r);const n={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[E.extensionName]||(n.compress=!1),this._sender.send(e||L,n,r)}terminate(){if(this.readyState!==U.CLOSED){if(this.readyState===U.CONNECTING){return i(this,this._req,"WebSocket was closed before the connection was established")}this._socket&&(this._readyState=U.CLOSING,this._socket.destroy())}}}F.forEach((e,t)=>{const r={enumerable:!0,value:t};Object.defineProperty(U.prototype,e,r),Object.defineProperty(U,e,r)}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(e=>{Object.defineProperty(U.prototype,e,{enumerable:!0})}),["open","error","close","message"].forEach(e=>{Object.defineProperty(U.prototype,`on${e}`,{configurable:!0,enumerable:!0,get(){const t=this.listeners(e);for(let e=0;e{function n(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),null==t.autoClose&&(t.autoClose=!1),null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1),null==r&&(r=b),S.fstat(e,function(n,o){if(n)return r(n);var i=x.createFromFd(e,{autoClose:!0});a(i,o.size,t,r)})}function a(e,t,r,n){"function"==typeof r&&(n=r,r=null),null==r&&(r={}),null==r.autoClose&&(r.autoClose=!0),null==r.lazyEntries&&(r.lazyEntries=!1),null==r.decodeStrings&&(r.decodeStrings=!0);var a=!!r.decodeStrings;if(null==r.validateEntrySizes&&(r.validateEntrySizes=!0),null==r.strictFileNames&&(r.strictFileNames=!1),null==n&&(n=b),"number"!=typeof t)throw new Error("expected totalSize parameter to be a number");if(t>_NumberMAX_SAFE_INTEGER)throw new Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");e.ref();var s=_Mathmin(22+65535,t),l=E(s),d=t-l.length;u(e,l,0,s,d,function(p){if(p)return n(p);for(var c=s-22;0<=c;c-=1)if(101010256===l.readUInt32LE(c)){var m=l.slice(c),g=m.readUInt16LE(4);if(0!==g)return n(new Error("multi-disk zip files are not supported: found disk number: "+g));var h=m.readUInt16LE(10),b=m.readUInt32LE(16),S=m.readUInt16LE(20),x=m.length-22;if(S!==x)return n(new Error("invalid comment length. expected: "+x+". found: "+S));var v=a?f(m,22,m.length,!1):m.slice(22);if(65535!==h&&4294967295!==b)return n(null,new o(e,b,t,h,v,r.autoClose,r.lazyEntries,a,r.validateEntrySizes,r.strictFileNames));var k=E(20),C=d+c-k.length;return void u(e,k,0,k.length,C,function(i){if(i)return n(i);if(117853008!==k.readUInt32LE(0))return n(new Error("invalid zip64 end of central directory locator signature"));var s=y(k,8),l=E(56);u(e,l,0,l.length,s,function(i){return i?n(i):101075792===l.readUInt32LE(0)?(h=y(l,32),b=y(l,48),n(null,new o(e,b,t,h,v,r.autoClose,r.lazyEntries,a,r.validateEntrySizes,r.strictFileNames))):n(new Error("invalid zip64 end of central directory record signature"))})})}n(new Error("end of central directory record signature not found"))})}function o(e,t,r,n,a,o,i,s,d,p){var c=this;C.call(c),c.reader=e,c.reader.on("error",function(e){l(c,e)}),c.reader.once("close",function(){c.emit("close")}),c.readEntryCursor=t,c.fileSize=r,c.entryCount=n,c.comment=a,c.entriesRead=0,c.autoClose=!!o,c.lazyEntries=!!i,c.decodeStrings=!!s,c.validateEntrySizes=!!d,c.strictFileNames=!!p,c.isOpen=!0,c.emittedError=!1,c.lazyEntries||c._readEntry()}function s(e,t){e.autoClose&&e.close(),l(e,t)}function l(e,t){e.emittedError||(e.emittedError=!0,e.emit("error",t))}function d(){}function p(e,t){return new Date((127&e>>9)+1980,(15&e>>5)-1,31&e,31&t>>11,63&t>>5,2*(31&t),0)}function c(e){return-1===e.indexOf("\\")?/^[a-zA-Z]:/.test(e)||/^\//.test(e)?"absolute path: "+e:-1===e.split("/").indexOf("..")?null:"invalid relative path: "+e:"invalid characters in fileName: "+e}function u(e,t,r,n,a,o){return 0===n?setImmediate(function(){o(null,E(0))}):void e.read(t,r,n,a,function(e,t){return e?o(e):t?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"[e[o]];return a}function y(e,t){var r=e.readUInt32LE(t),n=e.readUInt32LE(t+4);return 4294967296*n+r}function b(e){if(e)throw e}var S=r(35747),i=r(78761),x=r(84203),v=r(93514),k=r(31669),C=r(28614).EventEmitter,_=r(92413).Transform,w=r(92413).PassThrough,T=r(92413).Writable;t.open=function(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),null==t.autoClose&&(t.autoClose=!0),null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1),null==r&&(r=b),S.open(e,"r",function(e,a){return e?r(e):void n(a,t,function(e,t){e&&S.close(a,b),r(e,t)})})},t.fromFd=n,t.fromBuffer=function(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),t.autoClose=!1,null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1);var n=x.createFromBuffer(e,{maxChunkSize:65536});a(n,e.length,t,r)},t.fromRandomAccessReader=a,t.dosDateTimeToDate=p,t.validateFileName=c,t.ZipFile=o,t.Entry=d,t.RandomAccessReader=g,k.inherits(o,C),o.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())},o.prototype.readEntry=function(){if(!this.lazyEntries)throw new Error("readEntry() called without lazyEntries:true");this._readEntry()},o.prototype._readEntry=function(){var e=this;if(e.entryCount===e.entriesRead)return void setImmediate(function(){e.autoClose&&e.close(),e.emittedError||e.emit("end")});if(!e.emittedError){var t=E(46);u(e.reader,t,0,t.length,e.readEntryCursor,function(r){if(r)return s(e,r);if(!e.emittedError){var n=new d,a=t.readUInt32LE(0);return 33639248===a?(n.versionMadeBy=t.readUInt16LE(4),n.versionNeededToExtract=t.readUInt16LE(6),n.generalPurposeBitFlag=t.readUInt16LE(8),n.compressionMethod=t.readUInt16LE(10),n.lastModFileTime=t.readUInt16LE(12),n.lastModFileDate=t.readUInt16LE(14),n.crc32=t.readUInt32LE(16),n.compressedSize=t.readUInt32LE(20),n.uncompressedSize=t.readUInt32LE(24),n.fileNameLength=t.readUInt16LE(28),n.extraFieldLength=t.readUInt16LE(30),n.fileCommentLength=t.readUInt16LE(32),n.internalFileAttributes=t.readUInt16LE(36),n.externalFileAttributes=t.readUInt32LE(38),n.relativeOffsetOfLocalHeader=t.readUInt32LE(42),64&n.generalPurposeBitFlag?s(e,new Error("strong encryption is not supported")):void(e.readEntryCursor+=46,t=E(n.fileNameLength+n.extraFieldLength+n.fileCommentLength),u(e.reader,t,0,t.length,e.readEntryCursor,function(r){if(r)return s(e,r);if(!e.emittedError){var a=0!=(2048&n.generalPurposeBitFlag);n.fileName=e.decodeStrings?f(t,0,n.fileNameLength,a):t.slice(0,n.fileNameLength);var o=n.fileNameLength+n.extraFieldLength,l=t.slice(n.fileNameLength,o);n.extraFields=[];for(var d=0;dl.length)return s(e,new Error("extra field length exceeds extra field buffer size"));var h=E(u);l.copy(h,0,m,g),n.extraFields.push({id:p,data:h}),d=g}if(n.fileComment=e.decodeStrings?f(t,o,o+n.fileCommentLength,a):t.slice(o,o+n.fileCommentLength),n.comment=n.fileComment,e.readEntryCursor+=t.length,e.entriesRead+=1,4294967295===n.uncompressedSize||4294967295===n.compressedSize||4294967295===n.relativeOffsetOfLocalHeader){for(var b=null,d=0,S;db.length)return s(e,new Error("zip64 extended information extra field does not include uncompressed size"));n.uncompressedSize=y(b,x),x+=8}if(4294967295===n.compressedSize){if(x+8>b.length)return s(e,new Error("zip64 extended information extra field does not include compressed size"));n.compressedSize=y(b,x),x+=8}if(4294967295===n.relativeOffsetOfLocalHeader){if(x+8>b.length)return s(e,new Error("zip64 extended information extra field does not include relative header offset"));n.relativeOffsetOfLocalHeader=y(b,x),x+=8}}if(e.decodeStrings)for(var d=0,S;dS.data.length)continue;if(1!==S.data.readUInt8(0))continue;var k=S.data.readUInt32LE(1);if(v.unsigned(t.slice(0,n.fileNameLength))!==k)continue;n.fileName=f(S.data,5,S.data.length,!0);break}if(e.validateEntrySizes&&0===n.compressionMethod){var C=n.uncompressedSize;if(n.isEncrypted()&&(C+=12),n.compressedSize!==C){var _="compressed/uncompressed size mismatch for stored file: "+n.compressedSize+" != "+n.uncompressedSize;return s(e,new Error(_))}}if(e.decodeStrings){e.strictFileNames||(n.fileName=n.fileName.replace(/\\/g,"/"));var w=c(n.fileName,e.validateFileNameOptions);if(null!=w)return s(e,new Error(w))}e.emit("entry",n),e.lazyEntries||e._readEntry()}}))):s(e,new Error("invalid central directory file header signature: 0x"+a.toString(16)))}})}},o.prototype.openReadStream=function(e,t,r){var n=this,a=0,o=e.compressedSize;if(null==r)r=t,t={};else{if(null!=t.decrypt){if(!e.isEncrypted())throw new Error("options.decrypt can only be specified for encrypted entries");if(!1!==t.decrypt)throw new Error("invalid options.decrypt value: "+t.decrypt);if(e.isCompressed()&&!1!==t.decompress)throw new Error("entry is encrypted and compressed, and options.decompress !== false")}if(null!=t.decompress){if(!e.isCompressed())throw new Error("options.decompress can only be specified for compressed entries");if(!1!==t.decompress&&!0!==t.decompress)throw new Error("invalid options.decompress value: "+t.decompress)}if(null!=t.start||null!=t.end){if(e.isCompressed()&&!1!==t.decompress)throw new Error("start/end range not allowed for compressed entry without options.decompress === false");if(e.isEncrypted()&&!1!==t.decrypt)throw new Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(null!=t.start){if(a=t.start,0>a)throw new Error("options.start < 0");if(a>e.compressedSize)throw new Error("options.start > entry.compressedSize")}if(null!=t.end){if(o=t.end,0>o)throw new Error("options.end < 0");if(o>e.compressedSize)throw new Error("options.end > entry.compressedSize");if(on.fileSize)return r(new Error("file data overflows file bounds: "+h+" + "+e.compressedSize+" > "+n.fileSize));var y=n.reader.createReadStream({start:h+a,end:h+o}),b=y;if(g){var S=!1,x=i.createInflateRaw();y.on("error",function(e){setImmediate(function(){S||x.emit("error",e)})}),y.pipe(x),n.validateEntrySizes?(b=new m(e.uncompressedSize),x.on("error",function(e){setImmediate(function(){S||b.emit("error",e)})}),x.pipe(b)):b=x,b.destroy=function(){S=!0,x!==b&&x.unpipe(b),y.unpipe(x),y.destroy()}}r(null,b)}finally{n.reader.unref()}})},d.prototype.getLastModDate=function(){return p(this.lastModFileDate,this.lastModFileTime)},d.prototype.isEncrypted=function(){return 0!=(1&this.generalPurposeBitFlag)},d.prototype.isCompressed=function(){return 8===this.compressionMethod},k.inherits(m,_),m.prototype._transform=function(e,t,r){if(this.actualByteCount+=e.length,this.actualByteCount>this.expectedByteCount){var n="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return r(new Error(n))}r(null,e)},m.prototype._flush=function(e){if(this.actualByteCountt.refCount)throw new Error("invalid unref");t.close(e)}},g.prototype.createReadStream=function(e){var t=e.start,r=e.end;if(t===r){var n=new w;return setImmediate(function(){n.end()}),n}var a=this._readStreamForRange(t,r),o=!1,i=new h(this);a.on("error",function(e){setImmediate(function(){o||i.emit("error",e)})}),i.destroy=function(){a.unpipe(i),i.unref(),a.destroy()};var s=new m(r-t);return i.on("error",function(e){setImmediate(function(){o||s.emit("error",e)})}),s.destroy=function(){o=!0,i.unpipe(s),i.destroy()},a.pipe(i).pipe(s)},g.prototype._readStreamForRange=function(){throw new Error("not implemented")},g.prototype.read=function(e,t,r,n,a){var o=this.createReadStream({start:n,end:n+r}),i=new T,s=0;i._write=function(r,n,a){r.copy(e,t+s,0,r.length),s+=r.length,a()},i.on("finish",a),o.on("error",function(e){a(e)}),o.pipe(i)},g.prototype.close=function(e){setImmediate(e)},k.inherits(h,w),h.prototype._flush=function(e){this.unref(),e()},h.prototype.unref=function(){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var E="function"==typeof Buffer.allocUnsafe?function(e){return Buffer.allocUnsafe(e)}:function(e){return new Buffer(e)}},84202:module=>{module.exports=eval("require")("bufferutil")},40142:module=>{module.exports=eval("require")("encoding")},83914:module=>{module.exports=eval("require")("utf-8-validate")},35131:e=>{"use strict";e.exports=JSON.parse("{\"_from\":\"axios@latest\",\"_id\":\"axios@0.21.0\",\"_inBundle\":false,\"_integrity\":\"sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==\",\"_location\":\"/axios\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"tag\",\"registry\":true,\"raw\":\"axios@latest\",\"name\":\"axios\",\"escapedName\":\"axios\",\"rawSpec\":\"latest\",\"saveSpec\":null,\"fetchSpec\":\"latest\"},\"_requiredBy\":[\"#USER\",\"/\"],\"_resolved\":\"https://registry.npmjs.org/axios/-/axios-0.21.0.tgz\",\"_shasum\":\"26df088803a2350dff2c27f96fef99fe49442aca\",\"_spec\":\"axios@latest\",\"_where\":\"C:\\\\Users\\\\lecoq\\\\Documents\\\\GitHub\\\\gitstats\",\"author\":{\"name\":\"Matt Zabriskie\"},\"browser\":{\"./lib/adapters/http.js\":\"./lib/adapters/xhr.js\"},\"bugs\":{\"url\":\"https://github.com/axios/axios/issues\"},\"bundleDependencies\":false,\"bundlesize\":[{\"path\":\"./dist/axios.min.js\",\"threshold\":\"5kB\"}],\"dependencies\":{\"follow-redirects\":\"^1.10.0\"},\"deprecated\":false,\"description\":\"Promise based HTTP client for the browser and node.js\",\"devDependencies\":{\"bundlesize\":\"^0.17.0\",\"coveralls\":\"^3.0.0\",\"es6-promise\":\"^4.2.4\",\"grunt\":\"^1.0.2\",\"grunt-banner\":\"^0.6.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-clean\":\"^1.1.0\",\"grunt-contrib-watch\":\"^1.0.0\",\"grunt-eslint\":\"^20.1.0\",\"grunt-karma\":\"^2.0.0\",\"grunt-mocha-test\":\"^0.13.3\",\"grunt-ts\":\"^6.0.0-beta.19\",\"grunt-webpack\":\"^1.0.18\",\"istanbul-instrumenter-loader\":\"^1.0.0\",\"jasmine-core\":\"^2.4.1\",\"karma\":\"^1.3.0\",\"karma-chrome-launcher\":\"^2.2.0\",\"karma-coverage\":\"^1.1.1\",\"karma-firefox-launcher\":\"^1.1.0\",\"karma-jasmine\":\"^1.1.1\",\"karma-jasmine-ajax\":\"^0.1.13\",\"karma-opera-launcher\":\"^1.0.0\",\"karma-safari-launcher\":\"^1.0.0\",\"karma-sauce-launcher\":\"^1.2.0\",\"karma-sinon\":\"^1.0.5\",\"karma-sourcemap-loader\":\"^0.3.7\",\"karma-webpack\":\"^1.7.0\",\"load-grunt-tasks\":\"^3.5.2\",\"minimist\":\"^1.2.0\",\"mocha\":\"^5.2.0\",\"sinon\":\"^4.5.0\",\"typescript\":\"^2.8.1\",\"url-search-params\":\"^0.10.0\",\"webpack\":\"^1.13.1\",\"webpack-dev-server\":\"^1.14.1\"},\"homepage\":\"https://github.com/axios/axios\",\"jsdelivr\":\"dist/axios.min.js\",\"keywords\":[\"xhr\",\"http\",\"ajax\",\"promise\",\"node\"],\"license\":\"MIT\",\"main\":\"index.js\",\"name\":\"axios\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/axios/axios.git\"},\"scripts\":{\"build\":\"NODE_ENV=production grunt build\",\"coveralls\":\"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\"examples\":\"node ./examples/server.js\",\"fix\":\"eslint --fix lib/**/*.js\",\"postversion\":\"git push && git push --tags\",\"preversion\":\"npm test\",\"start\":\"node ./sandbox/server.js\",\"test\":\"grunt test && bundlesize\",\"version\":\"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\"},\"typings\":\"./index.d.ts\",\"unpkg\":\"dist/axios.min.js\",\"version\":\"0.21.0\"}")},86721:e=>{"use strict";e.exports=JSON.parse("{\"universal\":50,\"tag\":30,\"attribute\":1,\"pseudo\":0,\"descendant\":-1,\"child\":-1,\"parent\":-1,\"sibling\":-1,\"adjacent\":-1}")},74291:e=>{"use strict";e.exports=JSON.parse("{\"properties\":{\"-moz-background-clip\":{\"comment\":\"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip\",\"syntax\":\"padding | border\"},\"-moz-border-radius-bottomleft\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius\",\"syntax\":\"<'border-bottom-left-radius'>\"},\"-moz-border-radius-bottomright\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius\",\"syntax\":\"<'border-bottom-right-radius'>\"},\"-moz-border-radius-topleft\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius\",\"syntax\":\"<'border-top-left-radius'>\"},\"-moz-border-radius-topright\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius\",\"syntax\":\"<'border-bottom-right-radius'>\"},\"-moz-osx-font-smoothing\":{\"comment\":\"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth\",\"syntax\":\"auto | grayscale\"},\"-moz-user-select\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select\",\"syntax\":\"none | text | all | -moz-none\"},\"-ms-flex-align\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align\",\"syntax\":\"start | end | center | baseline | stretch\"},\"-ms-flex-item-align\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align\",\"syntax\":\"auto | start | end | center | baseline | stretch\"},\"-ms-flex-line-pack\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack\",\"syntax\":\"start | end | center | justify | distribute | stretch\"},\"-ms-flex-negative\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-shrink'>\"},\"-ms-flex-pack\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack\",\"syntax\":\"start | end | center | justify | distribute\"},\"-ms-flex-order\":{\"comment\":\"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx\",\"syntax\":\"\"},\"-ms-flex-positive\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-grow'>\"},\"-ms-flex-preferred-size\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-basis'>\"},\"-ms-interpolation-mode\":{\"comment\":\"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx\",\"syntax\":\"nearest-neighbor | bicubic\"},\"-ms-grid-column-align\":{\"comment\":\"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx\",\"syntax\":\"start | end | center | stretch\"},\"-ms-grid-row-align\":{\"comment\":\"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx\",\"syntax\":\"start | end | center | stretch\"},\"-webkit-appearance\":{\"comment\":\"webkit specific keywords\",\"references\":[\"http://css-infos.net/property/-webkit-appearance\"],\"syntax\":\"none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | listbox | listitem | media-fullscreen-button | media-mute-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\"},\"-webkit-background-clip\":{\"comment\":\"https://developer.mozilla.org/en/docs/Web/CSS/background-clip\",\"syntax\":\"[ | border | padding | content | text ]#\"},\"-webkit-column-break-after\":{\"comment\":\"added, http://help.dottoro.com/lcrthhhv.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-column-break-before\":{\"comment\":\"added, http://help.dottoro.com/lcxquvkf.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-column-break-inside\":{\"comment\":\"added, http://help.dottoro.com/lclhnthl.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-font-smoothing\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth\",\"syntax\":\"auto | none | antialiased | subpixel-antialiased\"},\"-webkit-mask-box-image\":{\"comment\":\"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image\",\"syntax\":\"[ | | none ] [ {4} <-webkit-mask-box-repeat>{2} ]?\"},\"-webkit-print-color-adjust\":{\"comment\":\"missed\",\"references\":[\"https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust\"],\"syntax\":\"economy | exact\"},\"-webkit-text-security\":{\"comment\":\"missed; http://help.dottoro.com/lcbkewgt.php\",\"syntax\":\"none | circle | disc | square\"},\"-webkit-user-drag\":{\"comment\":\"missed; http://help.dottoro.com/lcbixvwm.php\",\"syntax\":\"none | element | auto\"},\"-webkit-user-select\":{\"comment\":\"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select\",\"syntax\":\"auto | none | text | all\"},\"alignment-baseline\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty\"],\"syntax\":\"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical\"},\"baseline-shift\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty\"],\"syntax\":\"baseline | sub | super | \"},\"behavior\":{\"comment\":\"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx\",\"syntax\":\"+\"},\"clip-rule\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty\"],\"syntax\":\"nonzero | evenodd\"},\"cue\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"<'cue-before'> <'cue-after'>?\"},\"cue-after\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\" ? | none\"},\"cue-before\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\" ? | none\"},\"cursor\":{\"comment\":\"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out\",\"references\":[\"https://www.sitepoint.com/css3-cursor-styles/\"],\"syntax\":\"[ [ [ ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]\"},\"display\":{\"comment\":\"extended with -ms-flexbox\",\"syntax\":\"none | inline | block | list-item | inline-list-item | inline-block | inline-table | table | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group | flex | inline-flex | grid | inline-grid | run-in | ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | contents | -ms-flexbox | -ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box\"},\"position\":{\"comment\":\"extended with -webkit-sticky\",\"syntax\":\"static | relative | absolute | sticky | fixed | -webkit-sticky\"},\"dominant-baseline\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty\"],\"syntax\":\"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge\"},\"image-rendering\":{\"comment\":\"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality\",\"references\":[\"https://developer.mozilla.org/en/docs/Web/CSS/image-rendering\",\"https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty\"],\"syntax\":\"auto | crisp-edges | pixelated | optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>\"},\"fill\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"\"},\"fill-opacity\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"\"},\"fill-rule\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"nonzero | evenodd\"},\"filter\":{\"comment\":\"extend with IE legacy syntaxes\",\"syntax\":\"none | | <-ms-filter-function-list>\"},\"glyph-orientation-horizontal\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty\"],\"syntax\":\"\"},\"glyph-orientation-vertical\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty\"],\"syntax\":\"\"},\"kerning\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#KerningProperty\"],\"syntax\":\"auto | \"},\"letter-spacing\":{\"comment\":\"fix syntax -> \",\"references\":[\"https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing\"],\"syntax\":\"normal | \"},\"marker\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-end\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-mid\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-start\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"max-width\":{\"comment\":\"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\",\"syntax\":\" | | none | max-content | min-content | fit-content | fill-available | <-non-standard-width>\"},\"min-width\":{\"comment\":\"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width\",\"syntax\":\" | | auto | max-content | min-content | fit-content | fill-available | <-non-standard-width>\"},\"opacity\":{\"comment\":\"strict to 0..1 -> \",\"syntax\":\"\"},\"overflow\":{\"comment\":\"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\",\"syntax\":\"[ visible | hidden | clip | scroll | auto ]{1,2} | <-non-standard-overflow>\"},\"pause\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"<'pause-before'> <'pause-after'>?\"},\"pause-after\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"